在我的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获取的数据(仅在打开选项卡时才会出现)。
答案 0 :(得分:1)
如何在安全的环境中包装所有jQuery代码?
使用$:
(function($) {
// use $
})(jQuery)
使用$ jq:
(function($jq) {
// use $jq
})(jQuery)
答案 1 :(得分:0)
使用jQuery的noConflict设置。
$jq = jQuery.noConflict(); //use $jq instead of $
答案 2 :(得分: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>