使用JavaScript bookmarklet打开当前打开站点的新网页
我正在尝试创建一个JavaScript bookmarklet。 基本上,首先我将进入使用JavaScript bookmarklet打开当前打开站点的新网页,javascript,redirect,bookmarklet,Javascript,Redirect,Bookmarklet,我正在尝试创建一个JavaScript bookmarklet。 基本上,首先我将进入site1.com,然后单击bookmarklet,它将获取site1.com的URL,并打开site2.com/go.php?go=site1.com 因此,JavaScript需要将site1.com添加到site2.com/go.php?go=,然后打开位于site2.com/go.php?go=site1.com的网页。此书签小程序将完全满足您的要求: javascript:window.locatio
site1.com
,然后单击bookmarklet,它将获取site1.com的URL,并打开site2.com/go.php?go=site1.com
因此,JavaScript需要将
site1.com
添加到site2.com/go.php?go=
,然后打开位于site2.com/go.php?go=site1.com
的网页。此书签小程序将完全满足您的要求:
javascript:window.location='http://site2.com/go.php?go='+escape(window.location.hostname);
这个bookmarklet的潜在问题是它会将您发送到
http://site2.com/go.php?go=site1.com
您是否来自https://site1.com/secret.html?query=etc
或http://site1.com
。也就是说,无论您在site1.com
上的什么位置,当您单击bookmarklet时,它仍然会将您发送到http://site2.com/go.php?go=site1.com
所以我想你可能想要的是:
javascript:window.location='http://site2.com/go.php?go='+escape(window.location);
这将允许查询字符串准确显示您单击bookmarklet时在site1.com
上的位置,并且它还包括URI方案(http://或https://
部分site1.com
地址)。分别使用相同的两个示例,此bookmarklet会将您发送到http://site2.com/go.php?go=https://site1.com/secret.html?query=etc
1和http://site2.com/go.php?go=http://site1.com/
。²
site1.com
地址进行百分比编码,并将您发送到http://site2.com/go.php?go=https%3A//site1.com/secret.html%3Fquery%3Detc
因为site1.com
地址包含多个http://site2.com/go.php?go=http%3A//site1.com/
出于同样的原因您可能需要在site1上插入链接,因为浏览器将阻止来自选项卡外部的window.open()调用(如bookmarklets)。然后你只需通过
location.host
谢谢,这正是我需要的。