2012-01-29 71 views
0

我正在研究Chrome扩展,到目前为止我的目标是尝试将扩展应用于仅带有“http://www.facebook.com/events/*”的URL。Chrome扩展程序清单文件权限匹配不起作用?

这是我的清单文件:

{ 
    "name": "my extension", 
    "version": "1.0", 
    "description": "my extension", 
    "browser_action": { 
     "default_title": "myextension", 
     "default_icon": "icon.png" 
    }, 
    "background_page": "background.html", 
    "permissions": [ 
     "tabs", "http://www.facebook.com/events/*" 
    ] 
} 

然而,当我尝试应用我的分机只是“http://www.facebook.com/”,扩展继续运行并给出了不必要的动作。你觉得怎么样?谢谢!

+0

'但是,当我尝试应用我的分机只是“http://www.facebook.com/”,扩展继续运行,发出不必要的行动。它在哪里继续运行?如果你希望它适用于'http:// www.facebook.com/events/*' – 2012-01-29 06:09:00

+0

,你为什么要将它改为'http:// www.facebook.com'我的意思是我没有改变对''的权限http://www.facebook.com“',所以我完全希望它不能在'”http://www.facebook.com“'上运行。我的扩展使用executeScript向其预期的网站注入一些javascript,所以我不希望我的扩展运行,如果它只是“http://www.facebook.com”。但是,当我加载扩展名并导航到facebook.com时,即使我已经指定了它的权限为'“http://www.facebook.com/events/*”' – 2012-01-30 00:46:44

回答

1

我假设后台页面引用了一些仍在运行的JavaScript(或直接在其中运行JavaScript)?

原因是您设置的permissionstabs,无论此权限如何,后台页面将始终加载。如果你想防止后台页面上的代码加载,那么你需要做这样的事情:

或者只包括点击浏览器操作时的脚本:

chrome.browserAction.onClicked.addListener(function(tab) { 
    //do something 
}); 

或者阻止脚本只有你想要的页面加载:你的意思是什么

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { 
    if (tab.url.indexOf("//www.facebook.com/events/") > -1) { 
    // do something   
    } 
}); 
+0

,它的运行也会运行!谢谢! – 2012-01-31 07:53:47

相关问题