在 DOM 中插入时会切断带有井号(井号)的脚本 URL



从外部资源中,我获得了需要在DOM中执行/加载的跟踪器的URL,但是无论我尝试什么,带有#的URL都会在井号之后被切断。我无法控制这些 URL,因为它们来自第三方,我希望能够在不对其进行任何修改的情况下加载此 URL。 示例 URL:http://www.example.com/resource.js?param1=testvalue#a=b&c=d&f=g&js=.js
执行时,此 URL 将更改为:http://www.example.com/resource.js?param1=testvalue

我共享的代码适用于所有情况,除了上面的 URL。

原始代码:

$('#myElement').append('<SCRIPT language="JavaScript1.1" SRC="' + url + '"></SCRIPT>')

我也尝试过:

var s = document.createElement("script")
s.type = "text/javascript"
s.src = url
$('#myElement')[0].appendChild(s)

以及附加孩子的其他变体,我也尝试将其作为图像元素插入,但这也不起作用。

我能找到的唯一一篇关于此的帖子表明浏览器这样做(jQuery Ajax 调用带有井号(数字(符号的 URL (......看似合乎逻辑,但公司我们不是这家公司的第一个客户......

因此,您需要对 url 进行编码,这样您就不会让浏览器解释原始参数。你可以看看这篇文章 在 JavaScript 中编码 URL?.也许可以检查一下文档以了解为什么需要这样做。(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent(。因此,您只需要重定向到encodeURIComponent(url(或添加参数(link + encodeURIComponent(params((即可。

最新更新