みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

リンク元の引数を取得して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に代入したいです。
アドバイスよろしくおねがいいたします。

投稿日時 - 2008-03-27 19:38:48

QNo.3900004

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

iframeにidをふってsrcを入れ替えるという手は選択肢にないですか?

投稿日時 - 2008-03-27 21:59:54

補足

すいません、質問の仕方がわるかったです・・・
その方法でも問題ないのですが、リンク元でたとえば
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でインラインフレームの中身がもどるのではなく、ページ全体が前のページに戻る仕様にするためにつかっているものでした。

投稿日時 - 2008-03-28 13:36:03

お礼

いい参考みつけました。
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"];
これでできました。
ありがとうございました。

投稿日時 - 2008-03-28 14:53:23

あなたにオススメの質問