如何在JavaScript中更改iFrame的源位置?

如何在JavaScript中更改iFrame的源位置?,javascript,iframe,Javascript,Iframe,如何在JavaScript中更改iFrame的源位置 例如,单击按钮或链接,可以更改以下内容: <iframe src=""></iframe> ……在这方面: <iframe src="http://stackoverflow.com/"></iframe> 而且,如果您想做得更好,我如何在同一页面中更改多个iframe(使用名称或其他标识符)?这与修改任何其他标记没有什么不同。获取元素并设置属性: document.getEleme

如何在JavaScript中更改iFrame的源位置

例如,单击按钮或链接,可以更改以下内容:

<iframe src=""></iframe>

……在这方面:

<iframe src="http://stackoverflow.com/"></iframe>


而且,如果您想做得更好,我如何在同一页面中更改多个iframe(使用
名称
或其他标识符)?

这与修改任何其他标记没有什么不同。获取元素并设置属性:

document.getElementsByTagName("iframe")[0].src = "http://stackoverflow.com";
document.getElementById("frame1").contentWindow.location.href = "page1.htm";
frames[0].frameElement;
您可以根据自己喜欢的任何属性进行选择。例如,如果您有
,则可以针对以下任一属性进行选择:

var soFrames = document.querySelectorAll("iframe[src*='overflow']");
if (soFrames.length > 0) {
    soFrames[0].src = "something.com";
}
或:


(请注意,存在安全限制,因此您不能在页面的iframe中仅显示Stackoverflow.com之类的任意网站。)

首先,为iframe分配一个id。这如下所示

<iframe id="youridname" src=""></iframe>;. 

您可以从
窗口引用页面中的框架。框架
。它包含一组帧
窗口
对象。从这里,您可以修改框架的
窗口的
位置.href

frames[0].location.href = "page1.htm";
frames[1].location.href = "page2.htm";
您还可以通过引用框架元素的
contentWindow
属性来访问框架的窗口:

document.getElementsByTagName("iframe")[0].src = "http://stackoverflow.com";
document.getElementById("frame1").contentWindow.location.href = "page1.htm";
frames[0].frameElement;
要向后,即从其窗口获取框架元素,请使用
frameElement
属性:

document.getElementsByTagName("iframe")[0].src = "http://stackoverflow.com";
document.getElementById("frame1").contentWindow.location.href = "page1.htm";
frames[0].frameElement;

这不会起作用,堆栈溢出使用框架破坏,并且不能被框架(至少不容易):-)……非常感谢。我想你先回答了,所以我接受你的回答。它们都显示“9小时前回答”,所以我选了最上面的一个,那是你的。