我正在使用以下代码:
<script type="text/javascript">
var Dash = {
nextIndex: 0,
dashboards: [
{url: 'http://www.google.com', time: 5},
{url: 'http://www.yahoo.com', time: 10}
],
display: function()
{
var dashboard = Dash.dashboards[Dash.nextIndex];
parent.document.getElementById("iframe1").src = dashboard.url;
Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length;
setTimeout(Dash.display, dashboard.time * 1000);
}
};
window.onload = Dash.display;
</script>
基本上,将数组中的URL循环到iframe是一个例行程序。我将parent.document.getElementById("iframe1").src
设置为网址时出现问题;它适用于第一个但它似乎没有循环到下一个。
但是,如果我在此javascript的相同上下文中创建iframe,请说iframe2,而只是使用:
document.getElementById("iframe2").src = dashboard.url;
没有parent.document
电话,一切正常。
当我发出parent.document
来电时,它是否会失去javascript的焦点?
有关如何在调用parent.document
时将焦点重新调回此JavaScript代码的任何想法?
我正在使用ie6。
答案 0 :(得分:1)
此代码更改应该有效。你需要给iframe一个名字,其次,我没有在IE6中测试它,但在IE7中工作。
<script type="text/javascript">
var Dash = {
nextIndex: 0,
dashboards: [
{url: 'http://www.rediff.com', time: 5},
{url: 'http://www.google.com', time: 10}
],
display: function()
{
var dashboard = Dash.dashboards[Dash.nextIndex];
parent.frames["fname"].location.href = dashboard.url;
window.focus();
Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length;
setTimeout(Dash.display, dashboard.time * 1000);
}
};
window.onload = Dash.display;
</script>
答案 1 :(得分:0)
您是否尝试过使用'top'代替'parent'?
top.document.getElementById("iframe1").src = dashboard.url;
http://www.w3schools.com/jsref/prop_win_top.asp
这样你就有了绝对的引用,不必担心它实际上在哪个窗口。