使用 JavaScript 小书签打开包含当前打开站点的新网页

Open new webpage with currently open site using JavaScript bookmarklet

我正在尝试创建一个 JavaScript 小书签。 基本上,首先我会去 site1.com,然后我会点击小书签,它会取 site1.com 的 URL,然后打开 site2.com/go.php?go=site1.com

所以,JavaScript需要在site2.com/go.php?go=中添加site1.com,然后在site2.com/go.php?go=site1.com打开网页

这个小书签将完全满足您的要求:

javascript:window.location='http://site2.com/go.php?go='+escape(window.location.hostname);

那个小书签的潜在问题是它会把你送到 http://site2.com/go.php?go=site1.com 无论您来自 https://site1.com/secret.html?query=etc 还是 http://site1.com。也就是说,无论您在 site1.com 的哪个位置单击小书签,它仍会将您转到 http://site2.com/go.php?go=site1.com


所以我怀疑您可能想要的是:

javascript:window.location='http://site2.com/go.php?go='+escape(window.location);

这将允许查询字符串准确显示您在 site1.com 单击小书签时所在的位置,此外它还包括 URI 方案(http://https:// 部分site1.com 地址)。分别使用相同的两个示例,此书签会将您发送到 http://site2.com/go.php?go=https://site1.com/secret.html?query=etc¹ 和 http://site2.com/go.php?go=http://site1.com/


  1. 它实际上会percent-encodesite1.com地址并将您发送到http://site2.com/go.php?go=https%3A//site1.com/secret.html%3Fquery%3Detc,因为site1.com地址包含多个characters that don’t travel well as URI fragments unless encoded
  2. 实际上http://site2.com/go.php?go=http%3A//site1.com/ 出于同样的原因。