JavaScript处理和事件监听器

时间:2018-10-17 21:38:15

标签: javascript jquery html google-chrome-extension microsoft-edge-extension

这是在边缘扩展的上下文中,但它将与标准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商店的,因此策略不相关。

Download the zipped extension folder here.

1 个答案:

答案 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中。