2016-01-20 107 views
-2

我花了几个小时试图弄清楚我的Chrome扩展有什么问题。我知道我的function.js代码是好的,因为它可以与我链接到的html页面一起工作,但是对于扩展名可能不适用? 所有帮助表示赞赏为什么我的Chrome扩展工作不正常?

manifest.json

{ 
     "manifest_version": 2, 

     "name": "Font Find", 
     "description": "This extension allows you to click on any text, and find out what font it is written in.", 
     "version": "1.0", 
     "background": { 
       "page": "popup.html", 
       "persistent": true 
      }, 

    "permissions": [ 
     "activeTab", 
     "http://*/*", 
     "https://*/*" 
     ], 

     "browser_action": { 
     "default_title": "Find the Font", 
     "default_icon": "icon.png"//, 
    // "default_popup": "popup.html" 
     }, 

      "background": { "scripts": ["jquery.min.js"] }, 


     "content_scripts": [ 
      { 
       "matches": [ 
        "http://*/*", 
        "https://*/*" 
       ], 
       "js": [ 
        "function.js" 
       ] 
      } 
     ] 
    } 

popup.html文件(注意是不是设置为弹出式)

      <!DOCTYPE HTML> 
      <html> 
       <head> 
        <!-- <link rel="stylesheet" href="popup.css"/> --> 

        <script src="jquery.min.js"></script> 
        <script src="popup.js"></script> 
        <script src="function.js"></script> 

       </head> 

      </html> 

function.js文件

   "use strict"; 

      $("body").append('Test'); 

      document.body.ondblclick = function(event){ 

       //event.stopPropagation(); 
       var target = event.target || event.srcElement; 

       alert("What you clicked on:" + $(target).text() + " It's font-family is: " + $(target).attr("font-family")); 

      } 

function.js文件

chrome.browserAction.onClicked.addListener(function (tab) { 
    chrome.tabs.executeScript({ 
     file: "function.js" 
    }); 
}); 
+0

投票结束作为题外话,因为它是“为什么不是这个代码工作?”题。请更具体一些。例如,你有没有错误?它是如何“不工作”?你是否正确安装? –

+0

对不起,如果我不遵守堆栈的所有规则,我很难提出问题。我没有收到错误。我确实安装了它。当我点击我的图标时,我应该可以双击任何一段文字,并会弹出一个警告框告诉我它的字体系列。 – Steven

+0

欢迎来到SO!我猜测安装可能有问题。您是否正确地将其添加到Chrome? –

回答

0

首先,编辑manifest.json文件。加入该代码:

"content_scripts": [{ 
    "matches": [ 
     "http://*/*", 
     "https://*/*" 
    ], "js": [ 
     "jquery.min.js", 
     "function.js" 
    ], "run_at": "document_start" 
}] 

现在,在function.js文件中使用此代码。

document.addEventListener("DOMContentLoaded", function() { 
    document.body.addEventListener("dblclick", function(e) { 
     var target = e.target; 
     alert("What you clicked on: " + $(target).text() + " It's font-family is: " + $(target).attr("font-family")); 
    }, true); 
}); 

我测试了这个代码,它的工作原理。我希望它有帮助。

+0

非常感谢:)我真的很感激它。我正在处理我的javascript!我希望它越来越好。 – Steven

+0

为什么我的原始JS不能用于Chrome扩展? – Steven

+0

@Steven,可能你的jquery.min.js不是在你的jquery.js加载之前的文档启动时注入的,在其他使用jquery的地方被调用。 –

相关问题