页面加载后运行 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
加载之前运行”时,您的意思是什么?你指的是元素的渲染吗?
这个脚本直接添加到我的母版页,,在底部
如果你的脚本正好放在结束</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 函数