Chrome浏览器操作中的标签

时间:2014-09-03 03:06:49

标签: jquery html google-chrome google-chrome-extension

我正在开发一个扩展程序,在浏览器操作弹出窗口中,我希望有两个选项卡供选择。我读到你需要为我想做的任何类型的js单独的js文件。当我定期运行html页面(不在扩展名内)时,我的js工作正常,一切都相应地起作用,但不在扩展弹出窗口中。这是my html文件的顶部,我链接外部js文件

  <link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css">
  <link rel="stylesheet" type="text/css" href="tab.css" />
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <script type="text/javascript" src="tab.js"></script>
  <style>
    body {
      min-width: 250px;
      overflow-x: hidden;
    }
  </style>

这是js文件(在浏览器操作内部再次正常工作)

jQuery(document).ready(function() {
    jQuery('.tabs .tab-links a').on('click', function(e)  {
        var currentAttrValue = jQuery(this).attr('href');

        // Show/Hide Tabs
        jQuery('.tabs ' + currentAttrValue).siblings().slideUp(400);
        jQuery('.tabs ' + currentAttrValue).delay(400).slideDown(400);

        // Change/remove current tab to active
        jQuery(this).parent('li').addClass('active').siblings().removeClass('active');

        e.preventDefault();
    });
});

我之前从未真正处理过扩展,所以我不确定是否允许在浏览器动作弹出窗口内使用这种js / jquery。提前致谢

编辑这不是CSP afaik的问题。我没有&#34;拒绝加载脚本&#34;等。

1 个答案:

答案 0 :(得分:1)

我不确定,但您的内容安全政策可能存在问题。见https://developer.chrome.com/extensions/contentSecurityPolicy#resourceLoading

  

脚本和对象资源只能从扩展名中加载   包裹,而不是来自网络。这可以确保您的扩展   只执行你特别批准的代码,防止   主动网络攻击者恶意重定向您的请求   资源。

     

而不是编写依赖于jQuery(或任何其他库)的代码   从外部CDN加载,请考虑包括特定版本   您的扩展程序包中的jQuery。