在 iframe 中调用 javascript 函数 [英] Calling javascript function in iframe
问题描述
我在从父页面调用 iframe
中的 JavaScript 函数时遇到问题.这是我的两个页面:
I have problem calling a JavaScript function in an iframe
from the parent page. Here is my two pages:
mainPage.html
<html>
<head>
<title>MainPage</title>
<script type="text/javascript">
function Reset()
{
if (document.all.resultFrame)
alert("resultFrame found");
else
alert("resultFrame NOT found");
if (typeof (document.all.resultFrame.Reset) == "function")
document.all.resultFrame.Reset();
else
alert("resultFrame.Reset NOT found");
}
</script>
</head>
<body>
MainPage<br>
<input type="button" onclick="Reset()" value="Reset"><br><br>
<iframe height="100" id="resultFrame" src="resultFrame.html"></iframe>
</body>
</html>
resultFrame.html
<html>
<head>
<title>ResultPage</title>
<script type="text/javascript">
function Reset()
{
alert("reset (in resultframe)");
}
</script>
</head>
<body>
ResultPage
</body>
</html>
(我知道不推荐使用 document.all
但此页面只能在内部使用 IE 查看,我认为这不是问题)
(I know that document.all
isn't recommended but this page should only be viewed with IE internally and I don't think that's the problem)
当我按下重置按钮时,我得到resultFrame found"和resultFrame.Reset NOT found".好像有frame的引用,但是不能调用frame上的函数,这是为什么?
When I press the Reset-button I get "resultFrame found" and "resultFrame.Reset NOT found". It seems to have a reference to the frame but can't call the function on the frame, why is that?
推荐答案
使用:
document.getElementById("resultFrame").contentWindow.Reset();
访问iframe中的Reset函数
to access the Reset function in the iframe
document.getElementById("resultFrame")
将在您的代码中获取 iframe,而 contentWindow
将在 iframe 中获取窗口对象.拥有子窗口后,您可以在该上下文中引用 javascript.
document.getElementById("resultFrame")
will get the iframe in your code, and contentWindow
will get the window object in the iframe. Once you have the child window, you can refer to javascript in that context.
另请参阅此处,特别是来自 bobince 的回答.
Also see HERE in particular the answer from bobince.
这篇关于在 iframe 中调用 javascript 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!