我无法从iframe中调用父函数

时间:2012-08-23 21:56:28

标签: javascript iframe

我已经看过关于此的其他帖子,但以下方法由于某种原因无效。

onclick="parent.testing();" 

现在全文。我有一个index.html,其中包含所有JS文件。也在索引中,我有一个空的'div'标签。使用jQuery,我将page1.html文件附加到空'div'。所以索引有点像这样:

<html>
<head>
<script files>
<script>
ready { function testing(){do stuff;} }
</script>
</head>
<body>
<div><iframe src="page1.html" (added via jQuery)></div>
</body>
</html>

现在在page1.html文件中,我正在尝试在单击链接时调用函数。但我收到以下错误:

Uncaught TypeError: Cannot call method 'testing' of undefined 

我也尝试了以下但是它们不起作用:

onclick="window.testing();"
onclick="window.frames[0].testing();" 

2 个答案:

答案 0 :(得分:1)

您的父网页脚本无效JavaScript,但假设为ready { ... }

<script>
ready { function testing(){do stuff;} }
</script>

...是一个简化,应该表示一个文档就绪处理程序,您将testing()声明为该就绪处理程序中的本地函数,因此只能从该就绪处理程序中访问它。您需要在父页面中设置testing()全局:

<script>
$(document).ready({ /* your on ready stuff here */ });

function testing(){ /* do stuff; */ }
</script>

...然后您应该可以使用parent.testing()从iframe中调用它。

答案 1 :(得分:0)

如果我理解你的问题,你的问题是你的功能没有被调用,对吗?所以也许一个解决方案是把它放在你的“page1.html”

<script type="text/javascript" src="your_js_file"></script>