我在一个包含javascript函数getData()的iframe中有一个完整的html openning.现在我不知道如何从该框架外部调用getData().还可以从外部javascript文件中调用它吗?
joh*_*ter 11
您可以从window.frames属性获取对框架窗口对象的引用.请参阅https://developer.mozilla.org/en/DOM/window.frames
更新:
您可以使用以下命令访问命名iframe的全局上下文window[framename]
.例如:
<iframe src="data.html" name="data"></iframe>
<script>
var myData = window.data.getData();
</script>
Run Code Online (Sandbox Code Playgroud)
虽然您需要确保iframe已加载.
在jQuery中,如果要访问iframe DOM,可以使用contents方法:
$("iframe").contents()
Run Code Online (Sandbox Code Playgroud)
所有这一切都假设框架托管在同一个域中.
UPDATE [2]:
您询问是否可以getData
从外部js文件调用该函数.答案是肯定的(如果我理解正确的话).这是一个例子:
<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>
Run Code Online (Sandbox Code Playgroud)
然后在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..
}
Run Code Online (Sandbox Code Playgroud)
希望这能回答你的问题:)
归档时间: |
|
查看次数: |
13580 次 |
最近记录: |