【问题标题】:Run JavaScript after the page loads (document.ready) [duplicate]页面加载后运行 JavaScript(document.ready)[重复]
【发布时间】:2014-11-21 16:54:35
【问题描述】:

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

<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

【问题讨论】:

  • 您要的是非 jQuery 解决方案吗?
  • 您的问题不清楚。这个内联脚本到底放在您的母版页中的什么位置?当您说“脚本将在("currentdate").innerHTML 加载之前运行”时,您的意思是什么?你指的是元素的渲染吗?
  • 这个脚本直接添加到我的母版页,,在底部
  • 如果你的脚本正好放在结束&lt;/body之前,你不需要将你的代码注册到任何onload事件。
  • 关于 jQuery 错误:不支持 :visited 伪选择器。 (不要问我为什么)。使用 jquery.visited 插件。 remysharp.com/2008/02/25/visited-plugin

标签: javascript jquery


【解决方案1】:

对于非 jQuery 解决方案:

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

对于 jQuery 解决方案:

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

问候

【讨论】:

【解决方案2】:

使用 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>

【讨论】:

  • 您能否检查我对原始问题的编辑,因为我的 jQuery 1.10.2 出现错误?
【解决方案3】:

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

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

});

【讨论】:

    【解决方案4】:

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

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

    您可以阅读更多关于 here 的信息。

    别担心,有一个解决方法。您可以使用visited plugin by Remy Sharp。如果您将 :visited 用于样式设置,请将其删除,除非有必要。

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      相关资源
      最近更新 更多