有没有办法在JavaScript加载之前不加载html?

时间:2018-10-29 19:36:32

标签: javascript php jquery html wordpress

我想确保所有JavaScript在加载页面之前发生。我正在更改一些innerhtml,但不希望显示原始的innerhtml。

当前,当我的页面加载“ Books”时显示一小会儿,最后,当读取脚本时,它将被替换。如何防止其显示初始文本?

仅供参考,脚本存在于php文件中。

<?php
?>
<script>
function changeme(){
var myvar = "test-string-is-long-to-notice-the-changed-text";
var spans = document.getElementsByTagName("span");
for(var i=0;i<spans.length; i++) {
if(spans[i].textContent.trim().toLowerCase()==="books") {       //is this the "Welcome" span?
spans[i].innerHTML = myvar;  //change to new value
break;                                  //hop out of the loop, we're done
}
 }
 }
 window.onload = function() {
 changeme();
 };
</script>

2 个答案:

答案 0 :(得分:1)

在HTML之前加载JS不是一个好主意,因为在使用js加载之前无法更改HTML元素。

解决方案1:最初,将不想显示的html标记保留为空,因为您希望显示JS中的新数据。

解决方案2:最初,将这些元素的样式保留为“ display:none”,并在元素中使用Js添加数据时。更新样式以显示:“阻止”或您想要的其他任何样式,例如spans[i].style.display = 'block';

答案 1 :(得分:0)

您无法将JS应用于尚不存在的html文档。总是先加载您的html,然后再应用JS。您可能会在这里看到html加载完毕,而JS正在加载JS加载内容并进行更改?我建议找出一种更有效的方法来实现所需的JS。您可能只看到JS延迟。您可以使用更高效的实现以及一些CSS对其进行修复。我在这里可能是错的,但是将JS应用于html并没有意义,即使html尚未出现。

如果我想在浏览器解析并呈现我的html之前尝试使用它,我将如何对其应用JS?

还请记住,PHP总是先“加载”,然后是html,然后是JS