我必须从属性为id
的脚本中删除内容,并在index.html中键入application / json。它来自另一个应用程序(该应用程序基于另一个应用程序),我无法找到脚本所在的位置。
我尝试过:
<script type="text/javascript">
document.getElementById('wk-ra-state').textContent = ' ';
</script>
,但没有任何效果,可能是因为脚本始终位于index.html正文的末尾。 有什么想法吗?
答案 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>