有一个简单的HTML页面,名为abc.html。现在abc.html有一个名为'click me'的按钮。此页面abc.html也有一个iframe,ID为'myframe'。
现在我想要的是,当点击按钮“点击我”时,会在名为“myframe”的iframe内部出现一个警告框。我怎样才能做到这一点?
我试过以下......
window.frames[0].contentWindow.alert("this is the iframe");
但这似乎不起作用。请让我知道为什么这不起作用,什么可能是一个替代解决方案。
答案 0 :(得分:2)
ContentWindow派生自文档,而不是窗口。
您要做的是将警报添加到iframe页面上的函数中,然后使用document.getElementById('targetFrame').contentWindow.targetFunction();
来调用它,(使用targetFunction作为示例)。 This answer可能会为您提供有关技术的更多信息。
答案 1 :(得分:1)
如果<iframe>
的来源来自与父网页不同的域,则您将访问浏览器same origin policy,这意味着您无法对该网页执行任何操作。
对于“替代建议”,它确实取决于您要实现的目标,以及用户应该体验的内容。
答案 2 :(得分:1)
浏览器级alert
与特定帧无明显关联。您将始终获取以浏览器窗口为中心的警报,而不是以调用它的窗口/框架为中心。
如果您需要此功能,则必须使用自己的模态对话框或提供它们的库。
答案 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>