2011-10-03 22 views
1

からSRC属性を変更して、このようなiframeを使用します:<iframe src="script.php"></iframe>(もちろん他の属性もあります)。親iframe

ここでは、script.phpがiframeのSRC属性を他のページに変更するJSスクリプトを出力するよりも、いくつかのことをしています。

これは可能ですか?

+1

明示的に 'src'属性でなければなりませんか? iframe内の 'location.href'はしませんか? –

+0

クロスドメインスクリプトでの注意(該当する場合)。 –

+0

私はそれを覚えていませんでした。ありがとう! –

答えて

1

は、IDまたは名前なしに、一つのフレームのみを想定します。

document.getElementsByTagName("iframe")[0].src = "http://new.url"; 

現在のフレーム位置が同じドメインにある場合:あなたは複数のフレームを持っている場合は

frames[0].location.href = "http://new.url"; 

、添付することは非常に賢明ですそれに対するID。あなたはframesオブジェクトを介してフレームにアクセスしたい場合は、名前を設定します。

<iframe id="myframe" name="a_frame_name" src="script.page"></iframe> 

JavaScript: 
document.getElementById("myframe").src = "newpage.php"; 
frames.a_frame_name.location.href = "newpage.php"; 
frames["a_frame_name"].location.href = "newpage.php"; 

注:メインページフレームの位置が同じホストにある場合frames[..].location.hrefにのみ起因するSame Origin policyに、変更することができます。

+0

それはうまくいかなかったか、または私のscript.phpに何か問題があります。私のscript.phpは次のようなものです: iframeは更新されません:s –

+0

これは正解でした。私の推測では、スクリプトを追加するときに何かが間違っているということです。 PHPの出力を得るためにajaxを使用していますか?もしそうなら、実際にスクリプト自体をDOMに追加する必要があるからです。 – jtfairbank

+0

@ user726049あなたのコードは 'document.getElementbyId( 'iframe')。src = 'http://google.com';'でなければなりません。また、この機能を実行するときにIFrameが既に存在することを確認してください。 –

関連する問題