javascript 能否调用到iframe标签包含页面中的函数

新手上路,请多包涵

例如:
我有两个页面page1,page2
page1中有一个iframe标签,其src引用的是page2;
page2种有一段javascript代码,例如function a(){return "abc";}
我能在page1种调用到这个a()函数么?

再进一步
a()需要根据page2种一些<input>标签中的值,计算后return一个值
如果我在page1中能调用page2的a()函数,a()函数还是否能正常的获取到原来页面上<input>中的值?

阅读 3.1k
2 个回答

1、父页面(page_one.html)调用iframe方法

<script>
function pageOne() {
    console.log('这是页面一的方法!');
}
$('button').click(function() {
    window.frames.iframe.pageTwo();  
});
</script>

输出:这是页面二的方法

2、iframe(page_two.html)调用父页面方法

<script>
function pageTwo() {
    console.log('这是页面二的方法!');
}
$('button').click(function() {
    window.parent.pageOne();
});
</script>

首先,iframe不能跨域,你应该知道。
如果是同域,可以考虑通过获取innerHTML的方式获取里面的方法拿到外面调用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题