页面加载后运行 JavaScript(document.ready)[重复]

Posted

技术标签:

【中文标题】页面加载后运行 JavaScript(document.ready)[重复]【英文标题】:Run JavaScript after the page loads (document.ready) [duplicate] 【发布时间】: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 【参考方案1】:

对于非 jQuery 解决方案:

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

对于 jQuery 解决方案:

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

问候

【讨论】:

***.com/questions/2728922/… 刚刚编辑了评论...【参考方案2】:

使用 jQuery,这非常简单:

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

有几种方法可以在没有 jQuery 的情况下完成,尽管这些方法更复杂。其中一些最好的可以作为 *** 上这个问题的答案:$(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 用于样式设置,请将其删除,除非有必要。

【讨论】:

以上是关于页面加载后运行 JavaScript(document.ready)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 页面加载完成后运行 javascript 函数

页面加载后运行 JavaScript(document.ready)[重复]

仅在加载整个页面后运行JavaScript

在页面加载时自动运行javascript代码[重复]

jQuery中的事件

javascript 常用获取页面宽高信息 API