我有一个完整的HTML页面嵌套在iframe中,其中包含一个名为getData()的JavaScript函数。现在我不确定如何从框架外部调用getData()函数。另外,是否可以从外部JavaScript文件中调用它?
我有一个完整的HTML页面嵌套在iframe中,其中包含一个名为getData()的JavaScript函数。现在我不确定如何从框架外部调用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()
所有这些都是基于嵌入在同一域内的框架。
更新[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..
}
希望这回答了你的问题 :)document.getElementById('iFrameId').contentWindow.functionInIframe();
parent.functionInParent();
getData
之前,您需要确保该框架已经加载了外部脚本。 - johnhunter