簡體   English   中英

是否可以知道腳本是如何加載的

[英]Is it possible to know how script was loaded

假設我有腳本source.js 有兩種方式加載它:

  1. <script src="source.js"></script>
  2. 通過document.createElementappendChild

是否可以從source.js內部了解加載方式?

簡單回答:沒有。

可以script標記更改為具有額外屬性

<script src="source.js" data-scripttag="true"></script>

然后在source.js文件中,您可以看到標記上是否存在該屬性。 如果是,則通過腳本標記調用它。 但是,我從問題中假設您無法修改調用腳本的HTML(第三方集成?)。

此示例代碼段在SO中不起作用,但如果您可以編輯HTML,則應該了解實現此目的的方法。

 // foo.js var scriptTags = document.querySelectorAll('[data-scripttag]'); if (scriptTags.length === 1) { // Called via script tag } else { // injected } 
 <script src="foo.js" data-scripttag="true"></script> <script> var fs = document.getElementsByTagName('script')[0]; var s = document.createElement('script'); s.src = 'foo.js'; fs.parentNode.insertBefore(s, fs) </script> 

暫無
暫無

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

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