0

在我的 main.js 文件中:我将 contentScriptFile 配置为 script.js。此外,此脚本文件嵌入在 index.html 中,这是一个将使用 tabs.open 打开的选项卡。

我在那个脚本文件中有 self.port.on 和 jquery 相关的东西。如果 self.port 写在其他 jquery 事物之上,self.port.on 正在工作,而 jquery 不工作。但是,self.port.on 写在下面,jquery 工作正常,self.port 不工作。

脚本文件实际上处理使用 self.port 获得的数据(只有在打开选项卡时才会出现)。

4

3 回答 3

1

将所有 jQuery 代码包装在一个安全的环境中怎么样?

使用 $:

(function($) {
    // use $
})(jQuery)

使用 $jq:

(function($jq) {
    // use $jq
})(jQuery)
于 2012-12-27T14:53:11.013 回答
0

使用 jQuery 的 noConflict 设置。

$jq = jQuery.noConflict(); //use $jq instead of $
于 2012-12-27T14:08:35.400 回答
0

许多 JavaScript 库使用$函数或变量名,就像 jQuery 一样。在 jQuery 的情况下,$它只是 的别名jQuery,因此所有功能都可以在不使用 $ 的情况下使用。如果我们需要在 jQuery 旁边使用另一个 JavaScript 库,我们可以通过调用将 $ 的控制权返回给另一个库$.noConflict()

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>

这种技术与 .ready() 方法对 jQuery 对象的别名能力结合起来特别有效,因为在传递给 .ready() 的回调中,如果我们愿意,我们可以使用 $ ,而不必担心以后会发生冲突:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
    $("div").hide();
  });
  // Code that uses other library's $ can follow here.
  $("content").style.display = 'none';
</script>

来源:jQuery.noConflict

于 2012-12-27T14:24:52.517 回答