2017-07-26 34 views
1

從外部資源獲取我需要在DOM中執行/加載的跟蹤器的URL,但帶有#的URL會被切斷英鎊符號,無論我嘗試。我無法控制這些網址,因爲它們來自第三方,我希望能夠在不對其進行任何修改的情況下加載此網址。 一個例子網址:http://www.example.com/resource.js?param1=testvalue#a=b&c=d&f=g&js=.js
當執行該網址變爲:http://www.example.com/resource.js?param1=testvalue在DOM中插入腳本URL(hashtag)

的代碼,我分享的作品在所有情況下,除了上述的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 Call on URL with Pound (Number) Sign)......似乎是合乎邏輯,但公司我們不是該公司的第一個客戶端...

+0

所以你想通過「#」作爲參數? –

+0

事實上,我只是希望能夠執行該URL而不做任何修改。 –

+1

查詢字符串中的特殊字符需要轉義。片段標識符('#'之後的任何內容)不會被瀏覽器發送到服務器。 https://en.wikipedia.org/wiki/Percent-encoding – DarthJDG

回答

1

那麼什麼你需要編碼的網址,所以你不要讓瀏覽器解釋原始參數。你可以看看這篇文章Encode URL in JavaScript?。也許可以查看一下文檔,瞭解爲什麼你需要這樣做。(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent)。所以你必須重定向到encodeURIComponent(url)或者當你添加參數(link + encodeURIComponent(params))時。

+0

謝謝,這確實會修復它。經過一段時間後,第三方確定用#代替#,而之前根據他們不會工作.....我問我們是否可以停止與客戶和客戶一起工作,但有關錢......;) –