我正在通过网站上的iframe加载HTML。正在加载的HTML应该等待仅在父文档加载完成后加载某些内容(document.readyState == 'interactive' || document.readyState == 'complete'
)。问题是在父文档加载完成后,HTML内容被手动加载到iframe中。
有没有办法欺骗父文档的readyState以验证加载的HTML内容是否过早呈现?
答案 0 :(得分:3)
这是对您的问题的部分答案:
这里有两个不同的东西:Document Object Model
和Javascript
。
DOM
是浏览器的状态,用于存储显示此页面查看器所需的所有信息。
Javascript
是用于查询/操纵状态的工具(读取DOM
)。
DOM通知Javascript状态更改,这只是单向的,因为此属性为read-only。对你的问题的简短回答是" No",你不能使用Javascript改变readyState属性。
要亲眼看到这一点,您可以在控制台类型中启动控制台(Firebug,Chrome开发工具)等:
typeof document.readyState // "String"
document.readyState // "complete"
document.readyState = "hello world" // "hello world"
document.readyState // if you expected it to show "hello world" it still shows "complete"
答案 1 :(得分:0)
let readyState = 'loading';
Object.defineProperty(document, 'readyState', {
get() { return readyState },
set(value) { return readyState = value },
});
console.log(document.readyState);
document.readyState = 'interactive';
console.log(document.readyState);
document.readyState = 'complete';
console.log(document.readyState);