我正在读的书:第三方的Javascript:加载异步JS文件&readyState?
有一个示例代码:(加载外部JS)
(function()
{
var script = document.createElement('script');
script.async = true;
script.src = 'js_file.js';
script.onload = script.onreadystatechange = function()
{
var rdyState = script.readyState;
if (!rdyState || /loaded|complete/.test(rdyState))
{
/*...*/
script.onload = null;
script.onreadystatechange = null;
}
};
var entry = document.getElementsByTagName('script')[0];
entry.parentNode.insertBefore(script, entry);
})();
我想了解该行:
if (!rdyState || /loaded|complete/.test(rdyState))...
我得到undefined
in script.readyState
问题:
- 为什么会出现在
script.readyState
undefined
? - 应该readystate返回数字或字符串?根据正则表达式测试,它假设返回字符串。但我见过很多地方返回数字。所以......?
http://jsbin.com/ipOrIDeY/4/edit
(铬31,感谢谷歌,但没有感谢的字体平滑的版本。(32))
似乎同样的问题[这里](http://stackoverflow.com/questions/1929742/can-script-readystate-be-trusted-to-detect-the-end-of-dynamic-script- loading) – guy777
@ guy777有关onreadystate的答案永远不会被调用。但onload确实..... **,这让我问**:readyState只有在调用onreadstate时才设置? –