簡體   English   中英

JS加載外部腳本並在本地配置

[英]JS Loading External Script and Configuring Locally

假設有人想將以下內容插入其網站:

<script type="text/javascript" src="https://foo.com/plugin.js"></script>
<script type="text/javascript">

    Plugin.Setup({userId: 100});

</script>

在這種情況下,plugin.js創建一個“插件”對象,該對象具有“設置”方法。

問題是將拋出以下錯誤:

Uncaught ReferenceError: Plugin is not defined

這是可以理解的,因為您無法調用未定義對象的方法。

這種方法可以解決這個問題:

<script type="text/javascript" src="https://foo.com/plugin.js"></script>
<script type="text/javascript">
    function initiatePlugin() {
        Plugin.Setup({userId: 100});
    }

    window.addEventListener ? window.addEventListener('load', initiatePlugin) : window.attachEvent && window.attachEvent('onload', initiatePlugin);
</script>

但是,我看到其他插件可以逃脫這種事情。 例如,TypeKit具有以下嵌入代碼:

<script src="https://use.typekit.net/sgye3663.js"></script>
<script>try{Typekit.load({ async: true });}catch(e){}</script>

他們所依賴的是外部腳本https://use.typekit.net/sgye3663.js加載速度比調用“Typekit.load”的本地腳本要快,並且在拋出錯誤的情況下,Typekit將永遠不會加載。

這是進行插件設計的正確方法嗎? 或者等待窗口加載事件會更好嗎?

最好等到頁面完全加載,然后從外部對象執行一個方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM