【问题标题】:Use a userscript as a regular javascript?使用用户脚本作为常规 javascript?
【发布时间】:2011-10-09 17:59:16
【问题描述】:

如果我有一个在网上找到的用户脚本,并且我想将它作为普通的 javascript(即不是用户脚本)合并到网站中,我该怎么做?

这似乎很简单,但我是 javascript 和用户脚本的新手,希望有人可以帮助我。

例如,我发现了这个用户脚本:“Convert UPS and FedEx Tracking Numbers to Links”...

它将解析页面以查找匹配任何 UPS/FEDEX/USPS 跟踪号的正则表达式,并将它们转换为指向相应运营商跟踪网站的链接以跟踪该号码。

这作为用户脚本非常有用,但我希望它在我正在处理的网站上自动运行(不需要访问者下载/安装用户脚本)。
如何将此用户脚本用作常规 javascript?

【问题讨论】:

    标签: javascript reusability userscripts


    【解决方案1】:

    UserScripts 通常在页面 DOM 加载后执行,以确保页面内容可以被完全访问。所以,你需要某种机制来实现这一点。但这有点棘手,因为旧版本的 IE 需要特殊处理。

    手动操作需要大约 30 行代码。像 jQuery 这样的库提供了一个 ready() 方法,如下所示:

    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>
    $(document).ready(function () {
    
        // put userScript here
    
    });
    </script>
    

    【讨论】:

    • 谢谢!这解决了这个问题。我猜脚本是在页面的其余部分加载之前执行的。
    【解决方案2】:

    应该只是像任何其他 Javascript 文件一样链接它:

    另存为foo.js,然后在你的html中,

    <body>
    <!-- body code here -->
    <script src="foo.js"></script>
    </body>
    

    【讨论】:

    • 谢谢.. 我已经这样做了,但它不起作用,原来问题是它在页面的其余部分之前执行。
    • jmiller,如果脚本按照这个答案所示放置,则不会这样做......就在结束 &lt;/body&gt; 标记之前。在这里放置脚本也是一种常见的性能提升。
    • 我明白了.. 是的,我将它放在一个包含的头文件中,该文件还包含在页面加载之前需要执行的代码.. 与使用 jquery 就绪方法相比,此设置有什么优势?
    【解决方案3】:

    你可以把它放在一个 JS 文件中,然后在你的页面中包含这个文件。

    用户脚本包含普通的 Javascript 代码,但由插件执行而不是在页面上。

    【讨论】:

    • 谢谢.. 我已经这样做了,但它不起作用,原来问题是它在页面的其余部分之前执行。
    猜你喜欢
    • 2014-06-08
    • 1970-01-01
    • 2019-06-13
    • 2012-02-27
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多