if (window.parent.frames['scripts1']) {
if (window.parent.frames['scripts1'].document.documentElement) {
var strSCRIPT = window.parent.frames['scripts1'].document.documentElement.textContent;
if ((strSCRIPT.lastIndexOf('bbbbEND') - strSCRIPT.length) != -7) {
window.parent.frames['scripts1'].document.location.href = 'test1.txt?refresh=' + Date();
}
} else {
window.parent.frames['scripts1'].document.location.href = 'test1.txt?refresh=' + Date();
}
}
我已经尝试了很多东西,但没有成功为跨浏览器编写内容。
答案 0 :(得分:2)
首先,重构代码以消除重复:
var s = window.parent.frames['scripts1'];
if (s) {
var d = s.document;
var e = d.documentElement;
var t = e ? e.textContent : null;
if (!t || t.length - t.lastIndexOf('bbbbEND') != 7) {
d.location.href = 'test1.txt?refresh=' + Date();
}
}
有一个已确定的兼容性问题,但至少现在我们有机会发现它!
具体而言,IE8或更早版本不支持.textContent
,因此:
var s = window.parent.frames['scripts1'];
if (s) {
var d = s.document;
var e = d.documentElement;
var t = e ? (e.textContent || e.innerText) : null;
if (!t || t.length - t.lastIndexOf('bbbbEND') != 7) {
d.location.href = 'test1.txt?refresh=' + Date();
}
}
答案 1 :(得分:0)
这里有一些jQuery概念材料可以帮助您入门:
// make sure to give your frame an ID, and then it's easy to access
var frame_a = $( "#frame_a" );
// jQuery's content() function seems to only work on iFrames, not on Frames
var frame_a_document = $( frame_a[0].contentDocument );
var frame_a_document_body = frame_a_document.find( "body" );
var frame_a_text = $( frame_a_document_body ).text();
alert( frame_a_text );
请记住这一重要事实:在父文档完成后加载您的框架,这意味着ready()函数将在加载框架之前执行。如果你尝试在ready()函数中访问你的帧,很可能你什么也得不到,因为它还没有被加载 - 也就是说它是竞争状态。