1

这似乎很简单,但我可以理解我错过了什么:

var string1 = document.createElement('script');
$(string1).attr('type', 'text/javascript');

$('body').before($(string1));

在 jquery 2.0.3 版本中,它运行完美,但我需要它在 1.8.3 版本中运行。我哪里错了?谢谢

4

2 回答 2

2

呼吁

$('body').before($(string1));

实际上应该是

$('body').prepend($(string1));

这会将脚本添加为主体的子元素,在所有其他元素之前。

如果before你的意思是,不是在身体里,那么它应该是

$('head').append($(string1));

事实上,正如@Quentin 在评论中所说,script标签不能直接进入html标签。

另请参阅两者的文档prependbefore因为它们具有完全不同的含义。

于 2013-10-28T13:03:59.423 回答
0

body在元素之前添加脚本是没有意义的。这将导致无效的 HTML。

您可能应该将其添加到head

$('head').append(string1);

注意:命名变量时应该非常小心。string1具有误导性,因为它不引用字符串而是引用script元素。

于 2013-10-28T13:07:04.827 回答