检测JS的来源

时间:2018-01-09 14:54:17

标签: javascript

我想检测是否有人制作了我的javascript库的本地副本,或者是从规范位置加载它。我想知道JS库是否有办法检查它的加载位置。

我不知道有任何方法可以做到这一点,所以我能想到的最好的方法是让JS检查DOM中的所有<script>标签,看看是否有任何指向规范位置的点。如果没有,那么我知道JS必须从其他地方加载。

我想知道是否有更好的解决方案,最好是JS能够告诉它从哪个URL加载。这种机制是否存在?

1 个答案:

答案 0 :(得分:2)

您可以通过访问document.currentScript让代码检查自己的<script>元素。它包含对当前处理的<script>元素的引用。测试src属性以查看是否未设置,或者是否与您的域不匹配。

var scriptLocation = document.currentScript.src;
if(!scriptLocation || scriptLocation.indexOf("http://example.com") != 0){
  //inline script or loaded from some other site
}

请注意,如果您将代码放入某些异步使用(即promise回调等),它将不会保存代码的脚本元素。