+ JavaScript の質問用スレッド vol.56 +
すみません。教えてください。IE限定で使うつもりです。
ボタンを押す→iframeを動的に作る→yahoo他検索エンジン(APIがないページ)を読み込む→
変数を検索窓に入れる→submit→結果のページの<body>を取得(変数Bに格納)
ということは可能でしょうか?iframeを作ってyahooを表示させることはできました。
js---
function send2(){
var BB;
var str = 'キーワード';
var iframeID = 'if2';
var iframe = document.createElement('iframe');
iframe.setAttribute('id','inner');
iframe.setAttribute('src','
http://example.com/');
document.getElementById(iframeID).appendChild(iframe);
iframe.onreadystatechange = function () {
if (this.readyState == "complete") {
//IFRAMEに読み込んだページの<input>を探してstrをいれてsubmit()
//結果のページのhtmlを取得
this.onreadystatechange = null;
}
}
}
html---
<form>
<input type = "button"
value = "送信"
onclick = "send2()">
</form>
<div id="if2"></div>
933
ありがとうございます。
「アクセスできない」は、jsからは読み取りもできないということですか?
書き換えたりするつもりはないですが
>>932 複製権侵害しない?大丈夫?
余所のページを自分のページのコンテンツのように表示させるのは法律違反だよ
結局やりたいことは、キーワードでヒットした結果のHTMLを取得したいだけです。
>935
ありがとうございます。GETなフォームなら使えそうですね
>936
ありがとうございます。
一部だけで、引用元(元サイト)を明示しますしリンクもはるので大丈夫のようです
>キーワードでヒットした結果のHTMLを取得したいだけです。
まだ勘違いしてる予感w
>>937 そのキーワード検索をやって結果を返す鯖が自分の鯖であれば、
内容にアクセスできる(JSを含んだHTMLを同じ鯖に入れておけばよいから)。
そうでなければ、どうやってもできない。「取得」ももちろんできない。
var a = 0;
function SCLL1() {
if ( a < 600 ) {
a = a+150;
window.scroll(a,0);
}
setTimeout("SCLL1()",5);
}
上記スクリプトでは、一度しかスクロールしません。
何度もスクロールさせたいのですが、どうやってaの値をリセットすればよろしいのでしょうか。
>>940 > aの値をリセット
どうゆうこと?alert(a)ってやればaが増えてるのはわかると思うけど。
>>941 僕の解釈が間違っているかも知れません。
var a = 0;
function SCLL1() {
if ( a < 600 ) {
a = a+150;
window.scroll(a,0);
}
setTimeout("SCLL1()",5);
}
上記スクリプトでは、更新しない限り一度しか動きません。
それはaの値が600のままだからだと解釈しました。
aの値をリセット云々は置いておいて
上記スクリプトを何度も動くようにするにはどうすればよろしいのでしょうか。
よろしくお願いいたします。
>>942 普通に動くよ?
「一度しか」の意味を取り違えてるのかな
どういうこと?
600まで行った後にまたスクロール戻して、で、もう一回スクロールさせたいわけ?
まずはifの中にalert(a)を入れてaの値が変わってることを確認してくれ。
で、そのaの値がどうなりたいのかを言ってくれ
aはbになりたいんだ
>>943 [A]→ ←[B]→ ←[C]
1 2 3 4
1をクリックすると[B] までスクロールし、
2をクリックすると[A] までスクロールし、
3をクリックすると[C] までスクロールし、
4をクリックすると[B] までスクロールするスクリプトを作りたいのです。
[A]と[B]と[C]の間はそれぞれ600ピクセルです。
一度1をクリックしてしまうと、ブラウザを更新させないとスクロールされないのです。
これを更新せずに何度でも出来るようにしたいということです。
よろしくお願いいたします。
思いっきりズレてますね・・・。
1,2,3,4は矢印のことです。
>>945 BからAに行くためにはaの値を減らなきゃいけないのにその処理ないけど…?
それらのスクリプトは別に用意しています。
1をクリックしたAからBまでの話での質問です。
何度も出来るようにしたいのです。
よろしくお願いいたします。
>>948 あぁ、それなら最後にa=0に戻したら?
ちなみにsetTimeoutがその位置だと、clearしない限り無限にループするよ?
なるべく変えないとするとこれでいいんじゃね?
if ( a < 600 ) {
a = a+150;
window.scroll(a,0);
setTimeout("SCLL1()",5);
} else if (a == 600) {
a = 0;
}
自分でalert入れたりして動きみるようにした方がいいよ
>>949 ありがとうございました。
おかげさまで問題が解決できました。
感謝です。
951 :
929:2007/06/09(土) 03:24:03 ID:???
>>931 何かの保証のあるやり方をお教え下さいますようお願いします
>>951 とりあえずidをそのまま使うのはよろしくないから
document.getElementByIdを使ったらどうだろうか?
リンクボタン押すと子画面として別ウィンドウが開いて、
子画面内の処理が終わると子画面を閉じ親画面にフォーカスが戻る、という処理があります。
ここで遷移が3画面に渡りかつ途中の画面が先に閉じられた場合、
つまり親画面⇒子画面⇒孫画面 から 子画面が閉じられ
親画面⇒ ⇒孫画面 となった状態、において、
孫画面の処理終了で孫画面が閉じ親画面にフォーカスが戻る、という処理は可能でしょうか。
わかりづらい説明で申し訳ないですが、皆様お願いします。
可能だよ。全部同一のドメイン(もしくはスクリプトで内部DOMを生成した)ならね
>>954 回答ありがとうございます。なるほど、すべて同じドメインです。
具体的にどう実装すればよいか、教えて頂けるでしょうか。
>>955 子画面が開いたときに
「window.saveopener = window.opener;」
を実行し、孫画面が開いた時に
「window.saveopener = window.opener.saveopener;」
を実行し、孫画面が閉じる前に
「window.saveopener.focus();」
を実行すればいいんじゃないかな。試してないけど。
次スレは175超えたら。FAQ
>>3 のQ6/A6だけどIEに限らず
HTMLではtableの内側にtbodyが存在(ただしtbodyタグは省略可)
だから「IEでは」→「DOM HTMLでは」と直したいがどうかな。
>>956 その子画面のsaveopenerは単なる別名だから不要だな。
>>955 孫を開かずに、子でlocation.replace()した方が楽じゃなかろうか。
というか、現在のブラウザ制限では、全て同じドメイン(要するにスキーム及び3つ目の/まで同じ)なら、別窓を開くもっともらしい理由が見当たらない。
つまり、何か特別な効果・副作用を利用する特殊な目的が無いなら、現在では、わざわざ別窓を「JSで」開いたり操作したりする理由が見当たらない。
だから、このスレでは、そういう特殊で注目に値する理由が明記されない限り、別窓関連の質問は完全スルーすべきだろう。
JavaScriptだけでbase64エンコードは可能ですか?
可能です。
base64の使用がわかってたらこういう質問はしないだろうなぁ
963 :
Name_Not_Found:2007/06/10(日) 19:57:39 ID:i60Mdo/R
JavaScriptで、PHPを実行させて出力結果を取得する方法はありませんか?
今話題のAjax
965 :
Name_Not_Found:2007/06/10(日) 20:00:26 ID:i60Mdo/R
>>964 つまり、XMLを取得するときに、その取得するXMLをPHPで書き出せばいいってこと?
>>965 XMLじゃなくてもTXTでも普通に取得できるので
XMLが不要なら必要ない
Javascript で NOSCRIPT要素の中を参照することは出来るでしょうか?
>>968 二度と同じ質問が出ないように、いくつかのブラウザで試した結果を書いてくれ。
>>971 じゃあ「XHTMLは除く」と付記。IEだけみたいな現状の書き方より
ましでしょう。もう975目前だし… defaultViewは入れましょか。
その新しいmsdn2は見やすくていいね。
973 :
Name_Not_Found:2007/06/11(月) 14:21:41 ID:8+dHc4eH
↓をPHPでtxtに書き込み→表示させたいのですが、うまく取得されません。
document.write("<img src='
http://hogehoge.jp/accesslog.php?ref=");
document.write(document.referrer+"&height=");
document.write(screen.height+"&width=");
document.write(screen.width+"' />");
どこか間違ってるでしょうか?
PHPへは$_GET[ref]で取得してます。
なにを考えてるんだかさっぱりだ。
どこにPHPな部分があるんだ。
>>971 >
>>7 > 「JavaScriptでDOMを使う〜」のオブジェクト指向の解説は正直どうなんだろうか。
読んでみた。ここのテンプレに入れる水準じゃ無いな。外した方が良いと思う。
>>972,977
俺の書き方が悪かったが、
・Gecko、Opera、Safariはdocument.defaultView(DOM2 Views)を持っており、
このオブジェクトがViewCSS#getComputedStyle()を使える。
・Gecko、Operaではdocument.defaultView==windowだが、Safariはそうではない。
という意味でdocument.defaultView.getComputedStyle()を推した。
# WindowはW3C WDでAbstractViewを継承することになってはいるが、
# document.defaultView==windowであるという規定は、俺は知らない。
うーん早とちりスマソ。だからFAQに書けくそのままの形で提案してくれたら
一番安全なんだけどなー。だったら「Geckoでは…」の旧版が正しかった
ってことだなー。