JavaScriptでiframeのソースの場所を変更するにはどうすればよいですか?
たとえば、ボタンまたはリンクをクリックすると、次のように変更されます。
<iframe src=""></iframe>
...これに:
<iframe src="http://stackoverflow.com/"></iframe>
また、1 つ改善したい場合は、同じページ内の複数の iframe を変更するにはどうすればよいですか (name
またはその他の識別子を使用)。
JavaScriptでiframeのソースの場所を変更するにはどうすればよいですか?
たとえば、ボタンまたはリンクをクリックすると、次のように変更されます。
<iframe src=""></iframe>
...これに:
<iframe src="http://stackoverflow.com/"></iframe>
また、1 つ改善したい場合は、同じページ内の複数の iframe を変更するにはどうすればよいですか (name
またはその他の識別子を使用)。
まず、iframe に ID を割り当てます。これは次のようになります
<iframe id="youridname" src=""></iframe>;.
次に、JavaScript コマンドは次のようになります。
document.getElementById("youridname").src = "http://stackoverflow.com";
他のタグを変更するのと同じです。要素を取得し、プロパティを設定します。
document.getElementsByTagName("iframe")[0].src = "http://stackoverflow.com";
また、好きな属性を選択できます。たとえば、 がある場合、<iframe data-id='some-frame' src='http://stackoverflow.com'></iframe>
いずれかの属性に対して選択できます。
var soFrames = document.querySelectorAll("iframe[src*='overflow']");
if (soFrames.length > 0) {
soFrames[0].src = "something.com";
}
または:
var soFrames = document.querySelectorAll("iframe[data-id='some-frame']")
(セキュリティ上の制限があるため、ページの iframe に Stackoverflow.com のようなランダムな Web サイトを表示することはできません)。
からページ内のフレームを参照できますwindow.frames
。これには、フレームのwindow
オブジェクトのコレクションが含まれています。そこからlocation.href
、フレームのを変更しwindow
ます。
frames[0].location.href = "page1.htm";
frames[1].location.href = "page2.htm";
contentWindow
フレーム要素のプロパティを参照して、フレームのウィンドウにアクセスすることもできます。
document.getElementById("frame1").contentWindow.location.href = "page1.htm";
逆方向に移動するには、つまりウィンドウからフレーム要素frameElement
を取得するには、次のプロパティを使用します。
frames[0].frameElement;
document.getElementById("test").setAttribute("src", "http://stackoverflow.com");