这是在边缘扩展的上下文中,但它将与标准JavaScript一起使用。
扩展名必须;
1
能够识别打开新标签页的时间。
2
用指定的URL而不是about:blank
等替换新标签。
3
在弹出窗口中显示的链接在活动选项卡中打开,而不是新的。
我有这个JavaScript;
function handleCreated(tab) {
var newTabURL = {url: ''};
browser.tabs.update(newTabURL);
}
browser.tabs.onCreated.addListener(handleCreated);
以
为例。它确实将当前选项卡替换为google,但仅当单击弹出窗口中的链接时才会显示。弹出窗口中的链接应该是替换活动标签的链接,或者,如果用户创建了新标签,则应将其替换为mycompany.com/newtab.html
。
我有一个未打包的示例,其中包含所有内容,因此您可以看到所有代码。要使用此功能,必须首先在MS Edge(Here's how)中启用开发人员选项,然后才能加载扩展。
当前状态下的扩展具有代码注释并在UI中进行了解释。您可以以当前格式from this link来获取扩展名。您只需要在边缘内下载并解压缩load folder
即可。我认为这比发布所有代码容易,因为您可以更好地了解元素之间的交互方式。
总而言之;
1
“新建”标签应使用自定义URL https://mycompany.com/newtab.html
打开。
2
键入Google
应该重定向到https://gooogle.co.uk
。 (在地址栏中使用JS添加单词快捷键)
3
从弹出窗口打开的链接应该替换弹出窗口可用的活动选项卡,而不是在新选项卡中打开。
它有点用,我只是在努力使新的制表符功能起作用。这不是针对MS商店的,因此策略不相关。
答案 0 :(得分:0)
默认情况下,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中。