У меня есть следующий HTML / JS:
<html>
<body>
<script>
function foo(){
var html = "<iframe src=\"foo.html\" />";
document.getElementById('content').innerHTML=html;
}
function bar(){
var html = "<iframe src=\"bar.html\" />";
document.getElementById('content').innerHTML=html;
}
function show(){
alert(document.getElementById('content').innerHTML);
}
</script>
<button onclick="foo()">foo</button><br />
<button onclick="bar()">bar</button><br />
<button onclick="show()">test</button><br />
<div id="content"></div>
</body>
</html>
Этот тип работает, как и ожидалось, даже в IE. Пока я не нажму F5. Когда я впервые нажимаю foo , я получаю iframe с содержимым foo.html
, как и ожидалось. Затем я обновляюсь и нажимаю bar . Вместо того, чтобы получать содержимое bar.html
, я вижу содержимое foo.html
. Странно, когда я нажимаю test , alert()
сообщает мне, что атрибут src
для iframe правильно установлен на bar.html
. У Firefox такой проблемы нет.
Почему это происходит и как мне это предотвратить?
edit: что я забыл упомянуть, так это то, что я не могу вставить iframe и изменить атрибут src. В реальной ситуации иногда мне нужно <img>
, а не <iframe>
.