javascript – 有没有办法动态加载本地JS文件?

前端之家收集整理的这篇文章主要介绍了javascript – 有没有办法动态加载本地JS文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为了开发目的,我希望能够轻松地将本地存储的脚本加载到浏览器中,而不必将其复制粘贴到控制台.

创建一个新的< script>元素不工作,它给出不允许加载本地资源:file:// ….错误(在Chrome中).

此外,创建用户脚本将无法正常工作 – 每次进行编辑时,都必须重新安装.

有没有办法通过书签/ etc轻松加载本地脚本?

解决方法

在Chrome中,您可以创建一个扩展名,其中包含您需要加载的所有本地文件.它将使您的文件可以通过chrome扩展名访问:// …而不是file:// …

在一个新文件夹中创建一个名为manifest.json的文件,并将其填写:

{
  "name": "File holder","manifest_version": 2,"version": "1.0","web_accessible_resources": ["test.js","other.js","yetanother.js"]
}

然后,将要加载的所有脚本放在该新目录中,并确保它们包含在web_accessbile_reources清单列表中.加载扩展名,转到chrome:// extensions,启用Developer Mode,并选择加载unpacked扩展名的新文件夹….

现在,您可以使用chrome-extension:// [app_id] / [file_name]访问您的扩展目录中的所有文件,其中“app_id”是chrome:// extensions页面上扩展名列出的哈希.请注意,由于协议和主机名与实际工作的位置不同(除非您决定在扩展文件夹中进行所有开发,这可能是您可以接受的),扩展资源是跨域的,只能是通过< script>加载标签.

现在从控制台可以做到:

var s = document.createElement("script");
s.src = "chrome-extension://aefigdoelbemgaedgkcjpcnilbgagpcn/test.js";
document.body.appendChild(s);

(假设你的文件是test.js,你的应用程序id是aefigdoelbemgaedgkcjpcnilbgagpcn.)

这是一个很有用的类型,我知道,但也许你可以存储chrome扩展名:// [app_id]部分作为一个速记变量?

猜你在找的JavaScript相关文章