javascript - 从 iframe 外部调用 javascript 函数

标签 javascript iframe

我在包含 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/

相关文章:

javascript - 滚动后如何在导航栏中创建淡入淡出?

Javascript递归函数返回未定义而不是预期结果

python - 如何使用 selenium 登录包含 iframe 的网站?

jquery - 从 Iframe 关闭 jQuery UI 对话框

javascript - 自动完成标签不显示隐藏元素上的数据

javascript - 如何在 jquery 中初始化字符串中的类或标题

javascript - 我的最小日期在 WordPress 的日期选择器中不起作用

jquery - [jQuery]在 iFrame 内查找单击

javascript - 从 PHP 创建 PDF 文件

node.js - 尝试渲染 iframe : ancestor violates the following Content Security Policy directive: "frame-ancestors ' none'"