在html页面的iframe中显示警告框

时间:2012-08-27 10:07:24

标签: javascript html html5 dom

有一个简单的HTML页面,名为abc.html。现在abc.html有一个名为'click me'的按钮。此页面abc.html也有一个iframe,ID为'myframe'。

现在我想要的是,当点击按钮“点击我”时,会在名为“myframe”的iframe内部出现一个警告框。我怎样才能做到这一点?

我试过以下......

window.frames[0].contentWindow.alert("this is the iframe");

但这似乎不起作用。请让我知道为什么这不起作用,什么可能是一个替代解决方案。

4 个答案:

答案 0 :(得分:2)

ContentWindow派生自文档,而不是窗口。

您要做的是将警报添加到iframe页面上的函数中,然后使用document.getElementById('targetFrame').contentWindow.targetFunction();来调用它,(使用targetFunction作为示例)。 This answer可能会为您提供有关技术的更多信息。

答案 1 :(得分:1)

如果<iframe>的来源来自与父网页不同的域,则您将访问浏览器same origin policy,这意味着您无法对该网页执行任何操作。

对于“替代建议”,它确实取决于您要实现的目标,以及用户应该体验的内容。

答案 2 :(得分:1)

浏览器级alert与特定帧无明显关联。您将始终获取以浏览器窗口为中心的警报,而不是以调用它的窗口/框架为中心。

JSFiddle demonstrating this

如果您需要此功能,则必须使用自己的模态对话框或提供它们的库。

答案 3 :(得分:0)

这可能对您有所帮助:

function body_load()
{       
    document.getElementById('loader').src;
}
<div id='mydiv'>
    <input type="button" value="Click Me" onclick="body_load();" />
</div>
<iframe id='loader' onload="body_load(this)" name="Google"  scrolling="auto" style="width:95%;height:600px" src="http://www.image.com"></iframe>

<强> http://jsbin.com/idazul/1/edit