我在一个包含javascript函数getData()的iframe中有一个完整的html openning.现在我不知道如何从该框架外部调用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内托管.
UPDATE [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.. }
希望这能回答你的问题:)