2016-01-20 58 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的地方被調用。 –

相關問題