2012-04-04 82 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