2011-05-29 107 views
3

好吧,我有一个父页面内的2个iframe(无论什么原因)。从另一个iframe更改iframe源代码

我有父页,它改变的IFRAME#1的源上的导航菜单...

的iFrame#1的工作,就是要显示另一个导航菜单...喜欢一个子导航菜单...

现在,我该如何点击iFrame#1内的li,更改iframe#2的来源?他们俩都是相同的父页...

除了惨遭失败,我也得到Chrome的开发工具的警告 -

不安全的JavaScript尝试通过网址访问文件框架:/// C: /website/index.html与URL文件:/// C:/website/news/navigator.html。域,协议和端口必须匹配。

下面是一些代码,使事情稍微更清晰:

的HTML

<!-- HTML for the parent page itself --> 
<iframe id="frameone" src=""></iframe> 
<iframe id="frametwo" src=""></iframe> 
<button onclick="onenav('test.html')">Change 1st frame</button> 

<!-- The following is the HTML that is loaded inside "frameone" --> 
<button onclick="twonav('test2.html')">Change 2nd frame</button> 

// Javascript 
var one = document.getElementById('frameone'); 
var two = document.getElementById('frametwo'); 

function onenav(x){ 
    one.src = x; 
} 

function twonav(y){ 
    two.src = y; 
} 

对我来说,这是有道理的,因为这是所有被父页面上执行...在加载,我查询开发工具,我可以看到这两个,“一个”和“二”有框元素...第一个按钮的作品,第二个,不...

+0

你怎么会在第一时间尝试的时候?只有父母可以更改内容,所以你将不得不从帧1通信到父母和父母到帧2. – Ibu 2011-05-29 07:26:06

+0

我已经修改了操作提供与样品你们...我想做一个jsfiddle,但然后没有想过要经历头疼的iframe内容...甚至不知道你是否可以编码一个页面,并让它在jsfiddle里面的框架内运行......大声笑... – Abhishek 2011-05-29 08:52:01

+0

如果页面全部是相同的域,IFRAME可以通过父对象parent.frames直接进入[1] .... – mplungjan 2011-05-29 08:53:07

回答

5

对我的作品使用parent.twonav

DEMO

var links = [ 
    'javascript:\'<button onclick="parent.twonav(1)">Change 2nd frame</button>\'', 
    'javascript:\'Hello\'' 
]; 
var one, two; 
window.onload=function() { 
    one = document.getElementById('frameone'); 
    two = document.getElementById('frametwo'); 
} 

function onenav(idx) { 
    one.src=links[idx]; 
} 

function twonav(idx) { 
    two.src=links[idx]; 
} 
+0

是啊,你得到它的工作...给我几分钟倒过来,了解什么是不同的... – Abhishek 2011-05-29 09:18:04

+0

感叹,似乎没有在我的实施工作... – Abhishek 2011-05-29 10:00:28

+0

从技术上讲,这是正确的解决方案...它并没有为我工作,但我怀疑这是因为许多上下文问题与我的实施...谢谢反正... – Abhishek 2011-05-29 10:41:34

0

你是怎样尝试着改变iframe源?

parent.document.getElementById('2').src = "the new url"; 

你试过类似的东西吗?我从你的消息,假定第二iframe的ID为2

+0

父,iframe的#1和#的iFrame 2中的所有链接到一个单一的js文件...在这个js文件中,我为这两个框架创建了两个变量...然后有一个函数,它从调用该函数的元素中获取一个传递的变量x,并将其作为源......如此有效地,html读取像