Javascript 使用HTMLDOM更改脚本标记的内容

Javascript 使用HTMLDOM更改脚本标记的内容,javascript,html,dom,Javascript,Html,Dom,当我们使用html dom时,通常会运行以下代码: document.getElementById('id').innerHTML='newtext' 更改标记的内容,如 然而,我用标记尝试了这一点,但它似乎不起作用。我应该试试什么 document.getElementsByTagName('script')[0]。innerHTML=“document.write('ok')”假设您有一组脚本: var scripts=document.getElementsByTagName('scrip

当我们使用html dom时,通常会运行以下代码:

document.getElementById('id').innerHTML='newtext'
更改标记的内容,如

然而,我用
标记尝试了这一点,但它似乎不起作用。我应该试试什么


document.getElementsByTagName('script')[0]。innerHTML=“document.write('ok')”
假设您有一组脚本:

var scripts=document.getElementsByTagName('script')

执行
脚本[0]。innerHTML=“document.write('ok')”
将有效地更改脚本的内容,但不会执行脚本的新内容

解决方案很简单:

  • 删除要更新的脚本
  • 创建一个新脚本并将其添加到页面的
    正文
    。它将被执行
  • 使用
    正文中的待更新脚本
    这等于:

    document.body.removeChild(scripts[0]);
    var newScript = document.createElement('script');
    newScript.innerHTML = 'document.write("ok")';
    document.body.appendChild(newScript);
    

    是的,我意识到我在问题中写的代码不会执行,这是一个例子,谢谢你的解决方案。