2009-09-25 4 views
4

У меня есть веб-страница с несколькими фреймами, включая сторонние фреймы, такие как рекламный смысл и различные кнопки обмена.Ошибка обмена IFrame содержимого?

В Firefox я заметил, что иногда содержимое этих фреймов меняет местами, так что вы получите рекламное объявление, где находится другой iframe. Кажется совершенно случайным, когда появляется контент iframe. Кажется, что это может быть связано с кешированием.

Кто-нибудь знает, что вызывает это, или какие-либо шаги, которые я могу предпринять, чтобы это не произошло?

+0

Что вы имеете в виду под "получить заменяться? Вы предпринимаете какие-либо действия для обновления/перезагрузки iframes? – wtaniguchi

+0

Я не делаю никаких действий. содержимое для 1 кадра, загружает местоположение другого фрейма. – stevewedig

ответ

1

Одним из правдоподобных ответов является то, что два фрейма имеют одно и то же имя. Я пережил это несколько раз в conkeror (основанный на firefox), и каждый раз, когда это было конфликтом имени.

0

Я уже некоторое время борюсь с этим. Проблема заключается в firefox и способе кэширования содержимого iframe. Это тоже не случайность. Нечего делать, чтобы не допустить использования iframes.

Вы можете перезагрузить плавающие фреймы OnLoad, используя что-то вроде:

var reloadIframes = function() { 
    var a = window.frames, b = a.length 
    while (b--) { 
     a[b].src = a[b].src; 
    } 
} 

В случае объявления будет вызывать двойные впечатления, которые будут нарушать вам контракт.

Простым способом репликации проблемы является создание 3 html-файлов.

<!--frame1.html--> 
<html> 
<body> 
<h3>frame one</h3> 
</body> 
</html> 

<!--frame2.html--> 
<html> 
<body> 
<h3>frame two</h3> 
</body> 
</html> 

<!--index.html--> 
<html> 
<body> 
<iframe src="frame1.html"></iframe> 
<iframe src="frame2.html"></iframe> 
</body> 
</html> 

Открыть в firefox. Затем переключите кадр один и второй.

<!--index.html--> 
<html> 
<body> 
<iframe src="frame2.html"></iframe> 
<iframe src="frame1.html"></iframe> 
</body> 
</html> 

Обновить index.html. Фреймы не будут меняться, пока вы не очистите кеш.

В mozilla есть ошибка, но на данный момент никто не работает.

3

Обходной описано в этом докладе Mozilla черепашки работал для меня:

<iframe src="webpage2.html?var=xxx" id="theframe"></iframe> 

<script> 
var _theframe = document.getElementById("theframe"); 
_theframe.contentWindow.location.href = _theframe.src; 
</script> 
0

Эта проблема может быть похожа на вашу

попытка поставить

window.onload = yourcode; 

вместе с разгрузкой тела.

я имею JavaScript кончик инструмента в сегменте головки, которые содержат

window.onload = initTip; 

, но конфликт с моим OnLoad IFRAME

<body onload = "parent.myframe.location='mypage.html'"> 

мое решение: удалить, что window.onload = initTip; из сегмента головы, затем поместите их в тело.

<body onload = "initTip(); parent.myframe.location='mypage.html'"> 

это работа с кнопкой перезагрузки на светлячок

Смежные вопросы