Chrome.tabs.update添加chrome-extension://

时间:2014-05-02 17:09:41

标签: google-chrome-extension

我有一个简单的页面操作,在识别特定网址时打开,修改网址并使用新网址更新标签。

下面是我的manifest.json

{
  "name" : "SF Attachment",
  "version" : "1.1",
  "description" : "Open a SF attachment",
  "background" : 
  {
     "scripts": ["background.js"]
     "persistent": false
  },
  "page_action" :
  {
  "default_icon" : "icon19.png",
  "default_title" : "Open link"
  },
  "permissions": [ "tabs" ],
  "icons" : 
  {
     "19" : "icon19.png"
  },
  "manifest_version": 2
}

我的background.js:

function checkForValidURL(tabId, info, tab) {   
   var idx = tab.url.indexOf('file:///C:/Users/sk/Downloads');
   if (idx > -1) {
      chrome.pageAction.show(tabId);

      chrome.pageAction.onClicked.addListener(function(tab)
      {
         chrome.tabs.create({url: "www.google.com"});
      });
   } else {
      chrome.pageAction.hide(tabId);
   }
}
chrome.tabs.onUpdated.addListener(checkForValidURL);

目前,我正在重定向到google.com但新网址确实被发送为 chrome-extension://najbfggahgkmlcifdoamdhgdllbkafeg/www.google.com。 我读到了关于网络可访问资源以及本地文件的扩展名如何使用这种网址格式但这不是我的情况而且我不相信我在任何地方都启用了这种情况,这可能是问题吗?

1 个答案:

答案 0 :(得分:4)

不以方案开头的tabs.create中的网址(以及网络上的任何其他网址,例如window.open<a>链接)被视为来自网页的相对路径目前正在运行该脚本。

您必须包含一个方案,例如https://www.google.com