在运行时将脚本内容添加到页面
Add script content to page on runtime
我尝试在运行时向我的 index.html 页面添加一些带有内容的脚本标签在页面加载后,在标题标签下,在 chrome 控制台页面中,我放置了以下
var script = document.createElement('script');
script.src = "var a = 1" ;
document.getElementsByTagName('title')[0].appendChild(script);
我从 SO 论坛上拿了这个例子,但它对我不起作用(第三条声明没有做任何事情
> 1.is it possible to do that in the console and update the document
> 2.there is a way not do to do that in the console for example from external file...
尝试在 head
而不是 title
中添加脚本,如果你想向其中添加一些变量,你应该使用文本 属性,比如
var script = document.createElement('script');
script.text = "var a = 1" ;
//-----^ it should be text not src, if you want external js then use src
document.getElementsByTagName('head')[0].appendChild(script);
script.src = "var a = 1" ;
^^^^^^^^^
这没有意义。 <script>
元素的 src
属性必须设置为 Javascript 文件的 URL,而不是脚本的源。如所写,此代码将尝试加载脚本文件 named var a = 1
(来自与当前页面相同的目录)。
如果您想在 运行 时 运行 脚本,则根本不需要创建 <script>
元素。直接运行代码即可。
我尝试在运行时向我的 index.html 页面添加一些带有内容的脚本标签在页面加载后,在标题标签下,在 chrome 控制台页面中,我放置了以下
var script = document.createElement('script');
script.src = "var a = 1" ;
document.getElementsByTagName('title')[0].appendChild(script);
我从 SO 论坛上拿了这个例子,但它对我不起作用(第三条声明没有做任何事情
> 1.is it possible to do that in the console and update the document
> 2.there is a way not do to do that in the console for example from external file...
尝试在 head
而不是 title
中添加脚本,如果你想向其中添加一些变量,你应该使用文本 属性,比如
var script = document.createElement('script');
script.text = "var a = 1" ;
//-----^ it should be text not src, if you want external js then use src
document.getElementsByTagName('head')[0].appendChild(script);
script.src = "var a = 1" ;
^^^^^^^^^
这没有意义。 <script>
元素的 src
属性必须设置为 Javascript 文件的 URL,而不是脚本的源。如所写,此代码将尝试加载脚本文件 named var a = 1
(来自与当前页面相同的目录)。
如果您想在 运行 时 运行 脚本,则根本不需要创建 <script>
元素。直接运行代码即可。