如何从index.html中的动态脚本中删除内容

时间:2018-10-30 14:47:32

标签: javascript html angular

我必须从属性为id的脚本中删除内容,并在index.html中键入application / json。它来自另一个应用程序(该应用程序基于另一个应用程序),我无法找到脚本所在的位置。 我尝试过:

<script type="text/javascript">
    document.getElementById('wk-ra-state').textContent = ' ';
</script>

,但没有任何效果,可能是因为脚本始终位于index.html正文的末尾。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

实际上,由于在HTML页面末尾清空script标签的代码位于该代码上方,因此它将在脚本完全加载之前运行该代码。这就是您收到错误的原因:

  

未捕获的TypeError:无法将属性'innerHTML'设置为null

要在网页上加载所有内容后运行代码,请使用:

document.addEventListener("DOMContentLoaded", function(event) {});

它将在所有DOM加载后运行代码。

请参见下面的示例,第一个示例不使用document.addEventListener("DOMContentLoaded", function(event) {});,第二个示例使用它。

错误的示例:

<script>
  document.getElementById('wk-ra-state').innerHTML = '';
</script>
<!-- end of the html page -->
<script id="wk-ra-state" type="application/json">{&q;APP_SERIALIZATION_KEY&q;:{&q;recentFavorites&q;:{&q;pending&q;:false,&q;recentItems&q;:[{&q;id&q;:&q;&q;,&q;viewed&q;:false,&q;type&q;:&q;document&q;,&q;title&q;:&q;&q;,&q;link&q;:&q;javascript:void(0)&q;}]},&q;suggestions&q;:{&q;pending&q;:false,&q;requests&q;:{},&q;cach ............ </script>

很好的例子:

<script>
  document.addEventListener("DOMContentLoaded", function(event) {
    document.getElementById('wk-ra-state').innerHTML = '';
  });
</script>
<!-- end of the html page -->
<script id="wk-ra-state" type="application/json">{&q;APP_SERIALIZATION_KEY&q;:{&q;recentFavorites&q;:{&q;pending&q;:false,&q;recentItems&q;:[{&q;id&q;:&q;&q;,&q;viewed&q;:false,&q;type&q;:&q;document&q;,&q;title&q;:&q;&q;,&q;link&q;:&q;javascript:void(0)&q;}]},&q;suggestions&q;:{&q;pending&q;:false,&q;requests&q;:{},&q;cach ............ </script>