2013-04-08 79 views
1

我們如何知道我的應用程序用戶是否阻止了任何未在我的服務器上分配的外部javascript,即在我的網站上jquery正在從jquery.org加載,如果用戶阻止該網站,那麼如何顯示一條消息用戶允許來自jquery.org的腳本。如何檢測外部JavaScript是否已加載?

我發現這個事情是有stackoverflow.com當我阻止計算器的網站上顯示我

「堆棧溢出,需要從另一個域, 這是阻止或無法加載外部JavaScript 「。

消息,所以我的問題是我怎麼能得到外部腳本的想法被成功加載或不成功?

在此先感謝。

回答

0

最簡單的解決方案:在之後放置一些代碼,它測試它引入的符號(例如jQuery)是否存在。

<script src="url-to-jquery"></script> 
<script> 
    if (!window.jQuery) { 
     alert('jQuery could not be loaded'); 
    } 
</script> 

但是,如果您有許多外部參考,這可能會變得單調乏味。在這種情況下,您可能希望構建資源加載器,如https://github.com/cujojs/curl

-1

用你的外部js執行一些操作。例如,讓你的腳本添加特定類的身體:

<body class="js-file-1-loaded js-file-2-loaded ..."> 

這樣,您可以隨時查詢天氣的東西已被加載與否。

+0

我可以忍受downvoted,我可以看到爲什麼我的答案不是最好的,但誰downvotes應評論爲什麼其他開發人員應該可能避免這種解決方案。 – hurrtz 2016-11-07 10:40:38

0

您可以檢查typeof任何在外部資源中定義的函數或變量。

如果一個網站需要jQuery,它從外部資源加載,只需運行該檢查:

if (typeof jQuery === "undefined"){ 
    console.log("jQuery is not defined"); 
} 

把你的支票只是第一個使用jQuery之前。

2

除了答案之外,<script>元素還有onloadonerror等許多其他元素。 Here's有關瀏覽器兼容性的信息和here's有關如何使其在舊的IE中工作的問題。

相關問題