加载失败后将数据传递到javascript文件

时间:2019-05-26 12:26:14

标签: javascript

我的html中包含以下内容

<html>
<body>
<script type="text/javascript">
 var hccid=98964571;
 function add_chatinline(){
    var nt=document.createElement("script");
    nt.async=true;
    nt.src="http://localhost/ll.js";
    var ct=document.getElementsByTagName("script")[0];
    ct.parentNode.insertBefore(nt,ct);
    console.log("state is ", SORCHAT)//SORCHAT is not defined
 }
 add_chatinline();
 </script>
</body>
</html>

在ll.js上,

var SORCHAT = SORCHAT || (function () {
return {
    init: function (Args) {
        console.log("hash is ", Args)
    },
};
}());

但是现在收到未定义的SORCHAT错误。

通过添加window.onload

 <script>
  window.onload = function(){
    SORCHAT.init(12736474676); //this works
 } 
 </script>

但是每当我在window.onload函数中包含另一个javascript文件时,都不会执行SORCHAT.init。

我想念什么。

1 个答案:

答案 0 :(得分:2)

多次使用window.onload可能会覆盖它。您可以借助addEventListener函数来阻止这种情况。

window.onload = function () {
  console.log('onload #1');
}
window.onload = function () { // This replaces the first onload (#1)
  console.log('onload #2');
}

window.addEventListener('load', function () {
  console.log('onload #A');
});

window.addEventListener('load', function () {
  console.log('onload #B');
});