【问题标题】:contenScriptFile : Do we always need jQuery?contenScriptFile:我们总是需要 jQuery 吗?
【发布时间】:2014-08-06 16:43:38
【问题描述】:

本教程https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL 展示了如何使用脚本来修改网页。可以使用contentScriptFile 从另一个脚本文件加载脚本。我的问题是 contentScriptFile 的内容是什么?本教程给出了以下示例:

$("body").html("<h1>Page matches ruleset</h1>");

但这行不是使用 jQuery 吗?每当我们使用 contentScriptFile 时是否需要添加 jQuery?在这种情况下我们是不是应该将jQuery添加到插件目录中,如教程所示:contentScriptFile: [self.data.url("jquery-1.7.min.js"), self.data.url("my-script.js")]

【问题讨论】:

  • 出于该示例的目的,它使用 jQuery;换句话说,这只是解释如何包含 jQuery 的假设情况。它并没有暗示 jQuery 是否是一个好主意。
  • 好的,我明白了,那么 my-script.js 应该包含什么?是行:document.body.innerHTML = "

    页面匹配规则集

    ";够了吗?
  • 这只是一个例子;你编写的真实脚本应该包含你需要的任何代码,以获得你想要的结果。
  • 好的,我明白了。但是我是 Firefox SDK 的新手,我尝试使用单独的文件运行代码,其中 my-script.js 包含 document.innerHTML = "

    Page matches ruleset

    ";但它没有用......
  • 附注:document.innerHTML 不起作用(document 上没有此类属性),但 document.body.innerHTML 会。

标签: javascript jquery firefox-addon firefox-addon-sdk


【解决方案1】:

jQuery 只是常规 DOM/Web API 之上的一层。所以你真的不需要它。

实际上,该教程页面上的第一个示例给出了没有 jQuery 的相同示例:

// Import the page-mod API
var pageMod = require("sdk/page-mod");

// Create a page mod
// It will run a script whenever a ".org" URL is loaded
// The script replaces the page contents with a message
pageMod.PageMod({
  include: "*.org",
  contentScript: 'document.body.innerHTML = ' +
                 ' "<h1>Page matches ruleset</h1>";'
});

当然,您可以将 contentScript 填充到 contentScriptFile 中。

所以不,您不需要使用 jQuery。事实上,这是我个人的看法,如果可以的话,你可能应该避免使用 jQuery,因为大多数时候首先加载 jQuery 对性能的影响并没有超过额外的好处,特别是因为你并不真的必须处理跨浏览器的不兼容问题,这是 jQuery 的主要优点之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多