Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript bookmarklet打开当前打开站点的新网页_Javascript_Redirect_Bookmarklet - Fatal编程技术网

使用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

我正在尝试创建一个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.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
    谢谢,这正是我需要的。