在DOM

时间:2017-07-26 08:46:29

标签: javascript jquery

从外部资源中我获取了我需要在DOM中执行/加载的跟踪器的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

我所分享的代码在所有情况下均有效,但上述网址除外。

原始代码:

$('#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 Call on URL with Pound (Number) Sign)......看似合乎逻辑,但公司我们并不是该公司的第一个客户... < / p>

1 个答案:

答案 0 :(得分:1)

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