3

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

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

我试过以下..

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

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

4

4 回答 4

2

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

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

于 2012-08-27T10:13:26.567 回答
1

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

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

于 2012-08-27T10:41:01.050 回答
1

浏览器级别alert没有明显地绑定到特定框架。您将始终收到以浏览器窗口为中心的警报,而不是以调用它的窗口/框架为中心。

JSFiddle 演示了这一点

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

于 2012-08-27T13:35:56.823 回答
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

于 2012-08-27T10:16:24.617 回答