Мне пришлось отслеживать изменения страницы в iFrame вручную, используя следующее:
var iFrameHistory = {
history : [],
pos : 0,
ignore : false,
updateUI: function() {
var el;
// Enable / disable back button?
el = document.getElementById('back');
if (iFrameHistory.pos === 1)
el.className = 'disabled';
else
el.className = '';
// Enable / disable forward button?
el = document.getElementById('forward');
if (iFrameHistory.pos >= iFrameHistory.history.length)
el.className = 'disabled';
else
el.className = '';
},
back: function() {
var newPos = Math.max(1, this.pos - 1);
if (newPos !== this.pos) {
this.pos = newPos;
this.ignore = true;
document.getElementById('output').src = this.history[ this.pos - 1 ];
this.updateUI();
}
},
forward: function() {
var newPos = Math.min(this.history.length, this.pos + 1);
if (newPos !== this.pos) {
this.pos = newPos;
this.ignore = true;
document.getElementById('output').src = this.history[ this.pos - 1 ];
this.updateUI();
}
},
reload: function() {
document.getElementById('output').contentWindow.location.reload();
},
onload: function() {
if (!this.ignore) {
var href = document.getElementById('output').contentWindow.location.href;
if (href !== this.history[ this.pos - 1 ]) {
this.history.splice(this.pos, this.history.length - this.pos);
this.history.push(href);
this.pos = this.history.length;
this.updateUI();
}
}
else {
this.ignore = false;
}
}
};