需要从Chrome扩展程序的页面内直接链接到Chrome内部页面

时间:2012-01-19 12:07:43

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

我花了最近7个小时才试图找到直接链接到Chrome内部网页的方法。现在我放弃了。我刚刚指示人们“右键单击并在新选项卡中打开”。

我已尝试过所有内容,从html到css再到javascript,但没有任何效果。单击链接时没有任何反应,即使右键单击链接并在新选项卡中打开链接也是完美的。

Javascript尝试失败:

<div class="links">
  <a href="chrome://net-internals/" onclick="window.open('chrome://net-internals/');">TESTAA</a>
</div>

<div class="links">
  <a href="chrome://net-internals/" onclick="window.location('chrome://net-internals/');">TESTAA</a>
</div>

没有错误页面。点击时根本没有任何反应。如果您使用target="_blank"强制它在新标签页中打开,则只会打开一个空白标签。

UPDATE!解决了!

-----第1步-----

将以下代码放在background.html页面中(在manifest.json中调用background.html):

function openNetInternals() { 
  chrome.tabs.create({url: 'chrome://net-internals/'});
}

-----第2步-----

将此代码放在链接中(在html页面中):

<a href="chrome://net-internals/" onclick="chrome.extension.getBackgroundPage().openNetInternals()">Net</a>

-----第3步-----

确保刷新扩展程序。 它现在可以工作了。

3 个答案:

答案 0 :(得分:2)

此链接是否可从您的分机或您的网站获得?如果来自扩展程序,请尝试使用chrome.tabs模块:

chrome.tabs.create({url: 'chrome://net-internals/'});

在后台页面上创建如下的函数:

function openNetInternals() {
   chrome.tabs.create({url: 'chrome://net-internals/'});
}

当点击链接时,从您的自定义起始页面调用它:

chrome.extension.getBackgroundPage().openNetInternals();

相关文档here

答案 1 :(得分:1)

尝试这种方式:

<a href="#" onclick="chrome.tabs.create({url: 'chrome://net-internals'});">Net</a>

答案 2 :(得分:0)

在新标签页

中打开 chrome:// 链接
chrome.tabs.create({url: 'chrome://net-internals/'});

在同一个标​​签页中打开

chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
    var tab_id = tabs[0]['id'];
    chrome.tabs.update(tab_id, {'url':'chrome://net-internals/'});
});