如何延迟加载用户脚本的新选项卡?

问题描述

我使用用户脚本来修改网站的客户端代码。此代码正在向页面添加标记。它的目标是_blank。问题是,如果我过于频繁地点击这个链接,网站就会出错。只需刷新新标签即可解决问题。

当我点击链接时,它会立即打开一个标签。但是我不希望在我访问它之前或在某种时间延迟后呈现该新选项卡。有没有办法做到这一点?

我使用的是 Firefox,因此仅使用 Firefox 的解决方案就可以了。 I found this,但我没有看到使用它首先阻止选项卡呈现的方法。当我为此进行 Google 搜索时,我会看到有关可以解决问题的附加组件的结果。但是,它们的链接总是 404。理想情况下,该解决方案只会影响此脚本创建的选项卡,而不是所有选项卡的工作方式,但如果唯一的方法是影响所有选项卡的工作方式,我会接受它作为解决方案。

Tampermonkey documentation 表示有一个 GM_openInTab 函数。它有一个名为 loadInBackground 的参数,但它仅决定当您点击链接时新标签是否获得焦点。

如果有办法让这个新标签呈现我选择的一些 HTML,我认为这将是一个很好的解决方案。即,我会写一些 HTML,重点放在实际网站的页面上。如果这是一个选项,我需要知道如何在油脂猴子中打开我选择的 HTML 标签

解决方法

(只是意识到你自己在问题中所说的想法)

您可以放置​​等待焦点的简单页面,然后重定向到您在 URL 参数中传递的内容并在后台选项卡中打开。喜欢:

load-url-from-search-on-focus.html?http://example.com

<!doctype html>
<body
 onload="document.title=u=location.search.slice(1)"
 onfocus="u?document.location.replace(u):document.write('?search missing')">

Try it.


(如果没有那些讨厌的安全预防措施阻止渲染顶级 datauri 导航:|)