2011-04-19 141 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