- 締切済み
リンク元の引数を取得してjavascriptを実行したい
リンク元に引数を入力して、リンク先でページのインラインフレームのページが指し換わるjavascriptを実行させたいです。 実行させたいjavascriptは function change(URL1,URL2) { document.getElementById('contents1').innerHTML = '<iframe src="'+URL1+'" width="620" height="343" frameborder="0" scrolling="no" name="myFrame1" marginwidth="0" marginheight="0" hspace="0" vspace="0"></iframe>' ; document.getElementById('contents2').innerHTML = '<iframe src="'+URL2+'" width="620" height="215" frameborder="0" scrolling="no" name="myFrame2" marginwidth="0" marginheight="0" hspace="0" vspace="0"></iframe>' ; } 引数からURL1とURL2に代入したいです。 アドバイスよろしくおねがいいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
iframeにidをふってsrcを入れ替えるという手は選択肢にないですか?
お礼
いい参考みつけました。 var arg = new Object; var pair=location.search.substring(1).split('&'); for(i=0;pair[i];i++) { var kv = pair[i].split('='); arg[kv[0]]=kv[1]; } var link1=arg["link1"]; var link2=arg["link2"]; これでできました。 ありがとうございました。
補足
すいません、質問の仕方がわるかったです・・・ その方法でも問題ないのですが、リンク元でたとえば index.html?URL1=www.yahoo.com&URL2=www.google.com とあったときに、それぞれの引数をもってくる記述方法がわかりません。 サイトで調べてlocation.searchで?以下を取得するというところまではわかり、とりあえず記述してみましたが、実行されません。 javascript初心者なため、サイトからコピーしてきた記述ですが、以下のように記述しました。 window.onload=function(){ q = location.search.slice(1).split('&'); h = new Array(); for (var i=0 , c=q.length ; i < c ; i++) { var s = q[i].split('='); h[s[0]] = s[1]; } return h; var ar = get_t(); if (ar["q"] != undefined){ //ここ以下のインラインフレームの切り替えの記述は別な方法でも大丈夫です。 document.getElementById('contents1').innerHTML = '<iframe src="'+q+'" width="620" height="343" frameborder="0" scrolling="no" name="myFrame1" marginwidth="0" marginheight="0" hspace="0" vspace="0"></iframe>' ; document.getElementById('contents2').innerHTML = '<iframe src="'+t+'" width="620" height="215" frameborder="0" scrolling="no" name="myFrame2" marginwidth="0" marginheight="0" hspace="0" vspace="0"></iframe>' ; } } ちなみに、既述したfunctionは、インラインフレームの含まれるページで何度もインラインフレームの中身がきりかわったときに、backspaceでインラインフレームの中身がもどるのではなく、ページ全体が前のページに戻る仕様にするためにつかっているものでした。