我在包含 javascript 函数 getData() 的 iframe 中打开了一个完整的 html。现在我不确定如何从该框架外部调用 getData()。是否可以从外部 javascript 文件调用它?
最佳答案
您可以从 window.frames 属性中获取对框架窗口对象的引用。参见 https://developer.mozilla.org/en/DOM/window.frames
更新:
您可以使用 window[framename]
访问命名 iframe 的全局上下文。例如:
<iframe src="data.html" name="data"></iframe>
<script>
var myData = window.data.getData();
</script>
尽管您需要确保 iframe 已加载。
在 jQuery 中,如果你想访问 iframe DOM,你可以使用 contents 方法:
$("iframe").contents()
所有这些都假设框架托管在 same domain 中.
更新[2]:
您询问是否可以从外部 js 文件调用 getData
函数。答案是肯定的(如果我理解正确的话)。这是一个例子:
<html>
<head>
<meta charset="utf-8">
<title>parent page</title>
</head>
<body>
<iframe src="data.html" name="data"></iframe>
<script src="getdata.js"></script>
</body>
</html>
然后在 getdata.js
文件中你有:
var dataFrame = window.data;
// when the frame has loaded then call getData()
dataFrame.onload = function () {
var myData = dataFrame.getData();
// do something with myData..
}
希望这能回答您的问题:)
关于javascript - 从 iframe 外部调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5140696/