首页 > 解决方案 > 如何从 index.html 中的动态脚本中删除内容

问题描述

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

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

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

标签: javascripthtmlangular

解决方案


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

未捕获的类型错误:无法将属性“innerHTML”设置为 null

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

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

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

请参见下面的示例,第一个示例不使用 the 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>


推荐阅读