js 怎么在iframe外执行iframe里面的方法

发布网友 发布时间:2022-04-22 02:14

我来回答

5个回答

懂视网 时间:2022-04-19 11:48

最近,天天搞论文开题报告,一时技痒,再次设计Web,一下子就碰到一个问题,以前设计WEB页的时候都是在IE里面跑的,从来没有考虑过firefox 更别提chrome了,可是现在不同了,至少我认为不兼容Firefox的WEB页面是极其丑陋和山寨的,所以从有个这个观念开始,我设计页面就开始注意这个兼容性,而这次就碰到一个兼容性的问题,html里面有一个浮动框架,<iframe >,可以在页面中内嵌入一个页面,用来做框架页面非常适合,如下图,
 
一个html页面,分成左右两块,左边为导航栏,右边为需要显示的内容,代码如下:
左栏的代码为:
<IFRAME frameBorder=0 id=frmTitleLeft name=framLeft src="left.html" style="HEIGHT: 100%; width:180px;">
连接到left.html
右栏也类似,就本人所做的页面,预览的效果如下:
 
现在要达到什么样的效果才能起到比较实用的效果呢,点击其中的任何链接,都可以在右栏显示,那么很显然需要通过js来实现,原始的不兼容的办法我也不多说了,请大家记住以下实现步骤:
1,首先获得右栏iframe对象
var frames=document.getElementById("frameid");//frameid即右栏iframe的id名
2,重置其src值
frames.src=pageurl;//pageurl即要显示的目的页面
这样就实现了页面的跳转

但是还有一点,如果想调用其中的函数就不是这么简单了
比如右栏中有一个函数right(),我要在左栏的链接中调用right()函数,该如何实现呢

1,首先leftframe是内嵌在容器页index.html中的,因此需要先返回到index这一级别,并取得rightframe对象
var frames=window.parent.window.document.getElementById("frameid");

2,要能执行其页面中的函数,必须要获得window对象,这里有一个重要的对象contentWindow,获得这个对象,即可执行其中的函数了,如
frames.contentWindow.right();

以上代码兼容IE6,Firefox3,chrome2.0,均成功通过测试,IE7没试过,不过应该没问题。

热心网友 时间:2022-04-19 08:56

  实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法。
  比如有A窗口,A内有个IFRAME B,B里面的装载的是C页面,这时C要直接调用A里面的一个自定义函数AFUN();
  那么只要在C页面中写如下JS函数就可以了:
  window.parent.AFUN();
  如果AFUN()有参数也可以直接传递合适的参数进去。
  例如:
  修改父窗口控件属性
  window.parent.document.getElementById('frmright').src=window.parent.document.getElementById('frmrightsrc').value;
  调用父窗口函数
  window.parent.POPUP('bigFram'); 内容来自零度科技
  父窗口调用iframe子窗口方法
  <iframe name="myFrame" src="child.html"></iframe>
  myFrame.window.functionName();
  iframe子窗口调用父窗口方法
  parent.functionName();
  用js互相调用iframe页面内的js函数。

热心网友 时间:2022-04-19 10:14

假设 iframe的 name 为a. id为b.

在iframe外面一层调用。 window.frames['a']  或者 document.getElementById('b') 这将返回 iframe中的 window对象。 然后用 这个直接调用就好拉。

var win = window.frames['a'];
// var win = document.getElementById('b') 与上一行代码等效。
//假设 iframe里面有写方法 test(),那么直接调用就是
win.test();

热心网友 时间:2022-04-19 11:49

楼主你这个问题我以前在知道上也问过,一模一样

给你我当时问题的地址,回答的那个大师写的很专业,可以参考一下
http://zhidao.baidu.com/question/9190250435902059.html

热心网友 时间:2022-04-19 13:40

iframe里的内容是在哪里的?如果是异域的可能就不能实现了追问

iframe的内容是在一个html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com