【发布时间】:2011-05-29 06:58:46
【问题描述】:
好的,我在父页面中有 2 个 iframe(无论出于何种原因)。
我在父页面上有一个导航菜单,它改变了 iframe #1 的来源...
iFrame #1 的工作是显示另一个导航菜单...就像子导航菜单...
现在,我如何在点击 iFrame #1 中的 li 后,更改 iframe #2 的来源?它们都在同一个父页面上...
除了惨败之外,我还收到了来自 Chrome 开发工具的警告 -
不安全的 JavaScript 尝试从具有 URL 文件:///C:/website/news/navigator.html 的框架访问具有 URL 文件:///C:/website/index.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;
}
对我来说,这是有道理的,因为这一切都在父页面上执行...加载时,我查询开发工具,我可以看到“一”和“二”都有框架元素。 . 第一个按钮有效,第二个按钮不...
【问题讨论】:
-
一开始你是怎么尝试的?只有父级可以更改内容,因此您必须从框架 1 与父级以及父级与框架 2 进行通信。
-
我已经修改了操作,为你们提供了一个示例......我想制作一个 jsfiddle,但后来不想经历 iframe 内容的头痛...... Don '甚至不知道你是否可以编写一个页面并让它在 jsfiddle 内的框架内运行......大声笑......
-
如果页面都是同域的,iframe可以直接通过父对象parent.frames[1]....
标签: javascript iframe