2012-04-04 121 views
5

是否可以使用Jquery.attr()更改現有<script>元素的「src」屬性?這似乎是讓JSONP正常工作的一種簡單方法,但我無法爲我完成這項工作。更改「src」屬性<script>

+0

爲什麼不只是添加一個新的腳本元素到DOM? – 2012-04-04 08:39:21

回答

15

事實證明,一個腳本的src可以只能設置一次!無法更改DOM中現有<script>元素的src屬性。然而,一個動態創建的<script>元素可以有其源設置(但恰好一次!)

+2

我知道這是一箇舊的答案,但你有任何鏈接來支持這一點。我有類似的問題,目前沒有任何工作。任何關於此的閱讀材料肯定會有所幫助。 – ChickenWing24 2015-06-17 08:33:49

3

如果您嘗試加載腳本,則可以使用getScript。

http://api.jquery.com/jQuery.getScript/

或者,如果你想改變的src另一個原因,因爲腳本標籤的ID不能的,你既可以使用HTML5的使用現有的SRC兼容data-id屬性,或匹配。然後,您可以使用attr更改src值。但是這可能不會加載所有瀏覽器上的腳本。

+0

*「因爲腳本標記不能有身份證,」*當然,他們可以,無論你怎麼想,否則?! – 2017-08-27 20:57:24

3

雖然這是可能的,但您不需要手動執行此操作,因爲jQuery對JSON-P請求具有良好的內置支持。請參閱$.getJSON$.ajax方法的文檔。

+1

這不是問題。問題是「如果腳本標記已經存在,你可以改變src嗎?」 – 2012-04-04 09:06:32

+1

不勝感激。再次閱讀你的問題;它看起來像有人想做JSON-P,但認爲他們必須手動完成。如果你想手動完成,請參閱Aram的答案。 – 2012-04-04 09:25:15

+3

不是沒有感激之情 - 你解釋了這個問題是錯誤的。問題不在於如何在JQ中執行JSONP,而是關於更改腳本src的技術問題。你的回答沒有幫助。 – 2012-04-07 11:35:50