从网页链接到chrome:// url

时间:2016-11-01 15:03:53

标签: javascript google-chrome google-chrome-extension hyperlink google-chrome-devtools

更新

chrome://about/chrome://settings和其他人有直接链接,因此可以完成。

如何链接/重定向到网页中的chrome://网址?例如,chrome://settings。尝试点击指向chrome://网址的链接时

<a href="chrome://settings">link</a>

我在控制台中收到错误:

Not allowed to load local resource: chrome://settings/

根据这个答案,有可能:

  

Link to chrome://chrome/extensions from extension options page

我试过这个剧本:

<a href="#" id="test">test</a>
<script>
document.addEventListener('DOMContentLoaded', function () {
    document.getElementById('test').addEventListener('click', function () {
        chrome.tabs.update({
            url: 'chrome://chrome/extensions'
        });
    });
});
</script>

还有这一个:

<a href="#" onclick="chrome.tabs.create({url:'chrome://settings/clearBrowserData'});">click me</a>

两者都不起作用。除此之外,我试过了:

  • 使用<a href="chrome://newtab">
  • 链接到它
  • 使用window.location重定向用户。

但是,我相信可能有JavaScript解决方法。当用户按下链接时,是否可以将URL更改为chrome://settings?用户必须在之后按 Enter ,但这似乎是我得到的最好的。

2 个答案:

答案 0 :(得分:9)

不,没有办法从网页上做到这一点。

chrome://是特权来源,任何打开它的尝试都会导致重定向到about:blank

Chrome会这样做可以减少攻击面:即使只是打开这些 这些网址无害,最好不要让网站和外部程序甚至尝试。

此外,它不是那么无害,例如调试网址,例如chrome://crashchrome://hang(小心,那些真的按照您的意愿行事。)

显然,您无法使用chrome.tabs,因为它是未向网站公开的扩展API。但是,它能够打开特权来源。

答案 1 :(得分:4)

以下适用于我;

<强>的manifest.json

 {
  "manifest_version": 2,

  "name": "Redirection Sample",
  "description": "Test Redirection",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "activeTab",
    "https://ajax.googleapis.com/"
  ]
}

<强> popup.html

<!doctype html>
<html>
  <head>
    <title>Redirection Popup</title>
    <script src="popup.js"></script>
  </head>
  <body>
  <a href="#" id="test">test</a>
  </body>
</html>

<强> popup.js

  document.addEventListener('DOMContentLoaded', function() {
        document.getElementById('test').addEventListener('click', function() {
            chrome.tabs.update({ url: 'chrome://chrome/extensions' });
        });
    });

<强>的icon.png

添加自定义的示例或从此link

下载示例

将所有这4个包含在一个目录中,然后将扩展解压缩到chrome。它应该工作!