如何替换绝对浏览器URL?(而不是使用.pushState()的相对URL分配)

3

我在我的网站上使用第三方工具,需要我在以下域名下执行(例如):

www.bar.com

我目前的位置是:www.foo.com,并且我现在无法访问www.bar.com。因此,我使用JavaScript的.pushState()指定一个假URL,并使第三方工具了解我在bar上。

问题是:如果我设置window.history.pushState(null,null,"www.bar.com"),则URL变成了www.foo.com/www.bar.com"。换句话说,它设置了我的相对URL。我需要将整个(绝对)URL更改为www.bar.com

是否可以使用pushState或其他JavaScript方法实现?

注意:如果某种JS插件允许我这样做,我也可以安装它,但最初的计划只使用纯JS。


我想知道你为什么需要这个... - Pedro Lobito
想象一下,如果这是可能的,会引发什么混乱。 - Nick Zuber
@NickZuber 我根本没想过这个问题,哈哈。真的,那会非常混乱。 - undefined is our god
我不知道Google Tag Manager是如何工作的,但如果您基于环境禁用其功能会怎样呢?如果您无法使用JavaScript在客户端执行此操作,则所有服务器端解决方案都提供类似(例如Rails)检查环境变量等功能的特性:)例如,我经常进行“Rails.env.production?”检查以包含Google Analytics脚本。 - Mauno Vähä
@MaunoVähä 看起来是个不错的解决方案,但我无法更改 Google Analytics 的设置(因为过滤选项是在 GA 上设置的,而不是在 GTM 上,如果我的解释不清楚,请见谅)。我得到的最快速、最干净的解决方案是在这两个工具上创建一个个人账户,并从我的账户进行测试。谢谢! - undefined is our god
3个回答

3

简短回答:不行

地址的实际域名部分是不变的(除了显然地重定向到那个地址,比如 href='http://foo.com')。这是出于安全原因:如果可能的话,我可以让我的网站将您带到“facebook.com”,并有可能窃取账户信息。


谢谢!将此设置为正确的答案,因为给出了示例。 - undefined is our god

1

完全重写URL是不可能的。

新的URL可以是与当前URL相同源的任何URL。


1
为了使其绝对化,您应该指定方案,例如:
//www.bar.com
http://www.bar.com
https://www.bar.com

但出于安全原因,这是被阻止的。你会得到一个异常,如下所示:

SecurityError: The operation is insecure.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接