页面加载后运行JavaScript(document.ready)

时间:2014-09-26 15:57:50

标签: javascript jquery

我的母版页中有以下脚本: -

<script type= "application/javascript">
document.getElementById("currentdate").innerHTML = EMBEDformatAMPM();
var myVar=setInterval(function(){myTimer()},30000);
function myTimer()
{
document.getElementById("currentdate").innerHTML = EMBEDformatAMPM();
}
//code goes here
}</script>

但我面临的问题是脚本将在(currentdate").innerHTML加载之前运行,并且脚本将引发空引用异常,所以我的问题基本上是关于如何强制javaScript在运行之后运行页面加载。? 感谢

修改

我的jQuery文件引发了以下错误,不确定原因: -

Error: Syntax error, unrecognized expression: unsupported pseudo: visited

enter image description here

4 个答案:

答案 0 :(得分:1)

对于非jQuery解决方案:

window.onload = function(){
    YOUR CODE HERE;
};

对于jQuery解决方案:

$(document).ready(function(){
    CODE HERE;
});

问候

答案 1 :(得分:1)

使用jQuery,这非常简单:

$(document).ready(function(){
  // Your code here.
});

有几种方法可以在没有jQuery的情况下完成它,尽管这些方法更复杂。其中一些最好的可用作StackOverflow上此问题的答案:$(document).ready equivalent without jQuery

修改(解决问题编辑): 如果您还在使用jQuery,请考虑将以上内容重写为以下内容:

<script type= "application/javascript">
$("#currentdate").html(EMBEDformatAMPM());
var myVar = setInterval(function(){myTimer()},30000);
function myTimer()
{
  $("#currentdate").html(EMBEDformatAMPM());
}
</script>

如果这部分需要等到文档准备就绪,那么它还应该包含围绕它的代码:

<script type= "application/javascript">
$(document).ready(function(){
  $("#currentdate").html(EMBEDformatAMPM());
  var myVar = setInterval(function(){myTimer()},30000);
  function myTimer()
  {
    $("#currentdate").html(EMBEDformatAMPM());
  }
});
</script>

答案 2 :(得分:0)

由于Jquery是您问题中的标签之一,因此您可以使用:

$(document).ready(function(){
    //your code to run

});

答案 3 :(得分:0)

如果您将内联脚本放在结束标记之前,或者在为#currentdate编写HTML之后,您的代码应该运行良好。如果没有,请告诉我。

抛出JavaScript错误的原因是因为不再支持:visited伪选择器。该功能允许网站跟踪用户,并且出于某些隐私原因已被删除。

您可以详细了解here

不用担心,有一个解决方法。您可以使用visited plugin by Remy Sharp。如果您仅仅为了样式目的而使用:visited,请将其删除,除非有必要。