这是在边缘扩展的上下文中,但它适用于标准JavaScript。
延期必须;
1
能够识别何时打开新选项卡。
2
将新选项卡替换为指定的 URL 而不是about:blank
等。
3
在活动选项卡中打开弹出窗口中显示的链接,而不是新链接。
我有这个 JavaScript;
function handleCreated(tab) {
var newTabURL = {url: ''};
browser.tabs.update(newTabURL);
}
browser.tabs.onCreated.addListener(handleCreated);
举个例子。它确实将当前选项卡替换为谷歌,但仅当单击弹出窗口中的链接时。弹出窗口中的链接应该是替换活动选项卡的链接,或者如果用户创建新选项卡,则应将其替换为mycompany.com/newtab.html
,例如。
我有一个包含所有内容的未打包示例,因此您可以看到所有代码。若要使用它,必须首先在 MS Edge 中启用开发人员选项(方法如下(,然后才能加载扩展。
处于当前状态的扩展在 UI 中具有代码注释和说明。您可以从此链接中获取当前形式的扩展。您只需要下载并解压缩,然后在 Edge 中load folder
。我认为这比我发布所有代码更容易,因为您可以更好地了解元素如何相互交互。
所以总结一下;
1
新选项卡应打开,并显示自定义 URLhttps://mycompany.com/newtab.html
。
2
键入Google
应重定向至https://gooogle.co.uk
。(在地址栏中使用JS添加单词快捷方式(
3
从弹出窗口打开的链接应替换弹出窗口可用的活动选项卡,而不是在新选项卡中打开。
它有点工作,我只是在努力让新的选项卡功能工作。这不适用于 MS 存储,因此策略不相关。
在此处下载压缩的扩展文件夹。
默认情况下,MS Edge 会在新选项卡中从弹出窗口打开链接,并且此选项卡不处于活动状态。
例如,如果你有;
<a href="https://google.co.uk"><p>Visit Google</p></a>
该 URL 将在新选项卡中打开。要在 Edge 浏览器中处于活动状态的选项卡中打开 URL,您可以改为执行以下操作,因此实际上这是可能的。
例如,1
将元素放在 DIV 中,linked content
并在 HTML 中使用<div id="linkedcontent>
。
2
将应触发新选项卡的内容放在 DIV 中。
3
使用以下 JavaScript 进行getElementByID
,然后使用.onclick
替换当前浏览器窗口。
document.getElementById("linkedcontent").onclick = function() {
var LinkedContent = {url: 'https://google.com'};
browser.tabs.update(LinkedContent);
};
这将导致浏览器窗口被指定的 URL 替换。在我的示例中,它是https://google.com
.如果您需要多次执行此操作,只需复制代码并将DIV id
更改为每个代码的唯一内容,并在 JavaScript 中也反映这一点。