2015-10-14 111 views
0

如何調用外部js文件中的函數?如何調用外部js文件中的函數?

注意:這裏的外部js文件將異步加載。

HTML文件:

<script type="text/javascript"> 
     (function (e, b) { 
        var a, f, i, g; 
        a = e.createElement("script"); 
        a.type = "text/javascript"; 
        a.async = true; 
        a.src = "http://example.com/a.js"; 
        f = e.getElementsByTagName("script")[0]; 
        f.parentNode.insertBefore(a, f) 
      })(document, window.d || []); 
      </script> 

外部JS即a.js:

var d = function() { 
    d.prototype.init = function() { 
     alert("test1"); 
    } ; }; 

我不能夠從HTML文件調用init方法。當我調用d.init();我得到像init這樣的錯誤不是函數。請讓我知道如何打電話給這種方法。

+0

是你的文件被添加到您的頁面之前,你執行這個腳本? –

+0

在調用之前,您可以等待腳本加載並調用'd'上的'init'屬性。檢查此鏈接https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty – Sachin

回答

0

在您撥打電話時,您的文件可能未加載。如果你使用jQuery的getScript來加載你的外部文件,你會有一個成功的函數,並且從那裏調用你的init函數是安全的。

$.getScript("externalfile.js") 
    .done(function(script, textStatus) { 
     d.init(); 
    }) 
}); 

https://api.jquery.com/jquery.getscript/

0

您可以在以下處理程序添加到您的代碼:

a.onload = function() { 
    new d().init(); 
}