iframe1 调用 iframe2函数
时间: 2023-11-20 07:54:51 浏览: 92
使用window.frames来获取iframe2的window对象,然后就可以调用iframe2中的函数了。具体实现代码如下:
```javascript
var iframe2 = window.frames['iframe2'];
iframe2.func();
```
其中,'iframe2'是iframe2的name属性值,func()是iframe2中需要调用的函数名。
相关问题
iframe怎么打开调用函数
`iframe` 是一个 HTML 内联框架元素,它可以用来在网页中嵌入另一个 HTML 页面。当需要从一个页面向嵌入的 `iframe` 页面调用函数时,可以利用 `iframe` 的 `contentWindow` 对象,该对象允许当前页面访问 `iframe` 页面的 `window` 对象。
调用 `iframe` 中函数的基本步骤如下:
1. 确保 `iframe` 页面已经加载完成。可以通过监听 `iframe` 的 `load` 事件来确保页面加载完成。
2. 使用 `iframe` 的 `contentWindow` 属性获取 `iframe` 页面的 `window` 对象。
3. 通过获取到的 `window` 对象调用 `iframe` 页面中定义的函数。
下面是一个简单的示例代码:
```html
<!-- 父页面 HTML -->
<iframe src="iframe_page.html" id="myIframe"></iframe>
<button onclick="callFunctionInIframe()">调用函数</button>
<script>
function callFunctionInIframe() {
var iframeWindow = document.getElementById('myIframe').contentWindow;
if (iframeWindow) {
// 调用 iframe 页面中的函数
iframeWindow.callMeFromParent();
}
}
</script>
```
```html
<!-- iframe 内嵌页面 HTML -->
<script>
// iframe 页面中的函数
function callMeFromParent() {
alert('函数已被调用');
}
</script>
```
确保 `iframe` 页面和父页面同源,否则浏览器的同源策略会阻止跨域访问。
iframe内函数调用两次
当在iframe内调用函数两次时,可以通过以下步骤解决:
1. 确保iframe的name属性设置正确。在父页面中调用子页面方法,需要使用子页面iframe的name属性来引用。确保子页面的name属性与父页面中引用的名称一致。
2. 使用window.postMessage方法进行跨域通信。这个方法允许在不同的窗口间安全地传递消息。在父页面中,使用window.postMessage方法来发送消息给子页面。在子页面中,监听message事件来接收消息,并执行相应的函数。
3. 在子页面中,可以使用window.parent来调用父页面的方法。通过window.parent来引用父页面的window对象,并调用父页面中的函数。
4. 在父页面中,可以使用window.frames来引用iframe的window对象,并调用子页面中的函数。通过window.frames来引用子页面的window对象,然后调用子页面中的函数。
综上所述,可以通过上述方法解决在iframe内函数调用两次的问题。通过正确设置iframe的name属性,并使用window.postMessage方法进行跨域通信,可以实现父页面与子页面之间的函数调用。
阅读全文