2011-04-19 136 views
5

我正在製作Chrome擴展程序以查找頁面中的所有鏈接,我正在使用browser_action。我在刷新頁面時遇到了一個錯誤,Chrome擴展會自動觸發JavaScript代碼。我該如何做到這一點,如果你點擊瀏覽器刷新,擴展不會觸發?我只希望它在單擊工具欄上的小圖標時工作。Chrome擴展程序自動觸發

這是我的清單看起來像

{ 
    "name": "Find all first", 
    "version": "1.0", 
    "description": "Find all Linkes", 
    "browser_action": { 
    "default_icon": "icon.png", 
    "popup": "popup.html" 
    }, 
    "icons": { 
    "16": "icon.png", 
    "128": "icon-big.png" 
    }, 
    "permissions": [ 
    "tabs", 
    "http://*/*", 
    "https://*/*" 
    ], 
    "content_scripts": [ { 
    "matches": ["http://*/*", "https://*/*"], 
    "js": ["content.js"] 
    }] 
} 

我則調用此我popup.html

chrome.tabs.executeScript(null, {file: 'content.js'}, function() { 
    console.log('Success'); 
}); 

回答

7

因爲你有你的清單中定義contents_scriptscontent.js正在運行的內容腳本每次加載一個頁面,匹配您的matches(所以,真的任何網頁)。

要在用戶單擊頁面動作按鈕時在頁面上運行content.js,請從清單中刪除content_scripts部分,以便不會自動運行腳本。然後,當頁面動作按鈕被點擊時,popup.html將會按照它應該執行content.js