将本地 JavaScript 文件添加到页面

Add Local JavaScript File to Page?

本文关键字:添加 文件 JavaScript      更新时间:2023-09-26

我知道添加带有document.createElement('script')脚本的过程,但对于本地文件来说是一样的吗? 我尝试使用一些function.toString()调用,但这非常低效,宁愿存储我需要单独添加的文件,有一个加载器,然后调用一天。 有什么想法吗? 这就是我希望完美地转换为扩展的用户脚本的全部内容。 谢谢。

<script> src设置为本地文件有效。 例如:

addJS_Node (null, 'file:///D:/SAMPLE_DIR/YOUR_CODE.js');
function addJS_Node (text, s_URL, funcToRun) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    scriptNode.type                         = "text/javascript";
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;
    if (funcToRun)  scriptNode.textContent  = '(' + funcToRun.toString() + ')()';
    var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    //--- Don't error check here. if DOM not available, should throw error.
    targ.appendChild (scriptNode);
}

重要提示:您几乎总是必须指定完整路径,因为您希望文件从本地文件系统加载。浏览器会将相对路径解释为相对于当前网页(或<base>标记值)。





再:

这就是我希望完美地转换为扩展的用户脚本的全部内容

对于扩展,最好不要将JS注入目标页面,而是将其保留在"隔离世界"范围内。

对于扩展程序,有时甚至只是专用的 Chrome 用户脚本,请使用清单轻松地将文件包含在该范围内。 EG(从这里):

{
    "name": "My extension",
    ... 
    "content_scripts": [
        {
            "matches":  ["http://www.google.com/*"],
            "css":      ["mystyles.css"],
            "js":       ["jquery.js", "myscript.js"]
        }
    ],
    ... 
}