是否可以使用JavaScript更改document.readyState?

时间:2014-02-22 00:37:17

标签: javascript load readystate

我正在通过网站上的iframe加载HTML。正在加载的HTML应该等待仅在父文档加载完成后加载某些内容(document.readyState == 'interactive' || document.readyState == 'complete')。问题是在父文档加载完成后,HTML内容被手动加载到iframe中。

有没有办法欺骗父文档的readyState以验证加载的HTML内容是否过早呈现?

2 个答案:

答案 0 :(得分:3)

这是对您的问题的部分答案: 这里有两个不同的东西:Document Object ModelJavascriptDOM是浏览器的状态,用于存储显示此页面查看器所需的所有信息。 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);