首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为现有的单击_self eventListener将链接目标更改为“_blank”(当前的目标是"_blank")

为现有的单击_self eventListener将链接目标更改为“_blank”(当前的目标是"_blank")
EN

Stack Overflow用户
提问于 2022-11-17 15:03:42
回答 3查看 36关注 0票数 0

我正在为一个网站编写一个用户脚本,将链接目标从"_blank“更改为"_self”。

该网站的链接都由EventListener on Click操作处理,该操作检查每个<a>元素的id属性,以设置单击URL并将其加载到新的选项卡中。<a>元素中没有一个具有hreftarget属性。

我希望所有点击链接加载在同一个选项卡(而不是一个新的选项卡)。

是否有任何方法修改事件侦听器设置的链接目标,或者简单地设置/重写网页上所有链接的默认链接目标?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-11-17 15:29:14

如果您想重写新选项卡中打开的链接的行为,您可以这样重写window.open

代码语言:javascript
运行
复制
window.open = (open => (href => open.call(window, href, '_self')))(window.open);

对于具有显式_blank目标的锚标记,理论上可以重写click方法以强制目标:

代码语言:javascript
运行
复制
window.HTMLAnchorElement.prototype.click = function() { window.open(this.href, '_self') };

然而,这实际上是一个黑客解决方案,可能不是最好的想法,在生产中使用。

票数 1
EN

Stack Overflow用户

发布于 2022-11-17 15:20:13

您可以使用document.querySelector().target = "_self"选择元素。

票数 0
EN

Stack Overflow用户

发布于 2022-11-18 13:23:09

这个问题的答案解决了我的问题:

How to overwrite a function using a userscript?

我重写了skara9 9的答案中的开放函数,然后从上面的问题中插入了addJS_Node函数。

Userscript与目标页面分离,因此简单地重新声明函数没有覆盖默认的全局打开函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74477658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档