他们是一种通过Chrome浏览器设置将互联网上的所有页面保持在一个窗口中的方式吗?还是一个我可以这样做的插件?
我不希望在单击某些链接时网页在新选项卡和/或新窗口中打开。
如果有人有任何建议,请告诉我!,谢谢!!
<a href="http://www.bing.com" target="_blank">Opens a New Tab!</a>
<i>Thtats not what i want..., I want this link to stay in same url bar.</i>
<p>Like this!</p>
<a class="click" href="http://www.bing.com">Click Here</a>
2条答案
按热度按时间yvfmudvl1#
可能的方法:
一种方法是构建一个扩展,在每个页面中注入一个**content script**。这个内容脚本将解析DOM,删除锚元素的所有
target
属性,并将锚元素的所有target
属性设置为_self
。警告:
1.许多页面上都有动态插入的元素(包括锚元素)。
1.某些页面上存在动态变化的元素(包括锚元素)。
1.并非所有页面/选项卡都通过链接打开(例如,某些页面可能使用**
window.open()
**)。溶液:
您可以使用**MutationObserver**来监看插入的锚元素或修改其
target
属性的锚点元素,并进行适当的调整。如果通过其他方式打开的选项卡对您非常重要,您仍然需要注意这些选项卡(例如,
window.open()
)(但这些情况应该非常非常少,所以可能不值得这么麻烦)。示例代码:
清单.json:
内容.js:
7gyucuyw2#
这个问题已经有10年的历史了,但这里有一个稍微不同的方法,利用事件授权:
内容.ts: