页面加载后运行JavaScript

6

设置帐户 ui-mobile-viewport ui-overlay-c

当我制作的页面以以下方式加载时:

var location    =   location.href+"&rndm="+2*Math.random()+" #updatecomment0>*"
$("#updatecomment0").load(location, function(){});

我有多个脚本在 updatecomment0 div 上运行:

<div id="updatecomment0">
    <div id="javascript1">hi</div>
    <div style="float:right;" class="javascript2">delete</div>
</div>

我不知道如何在页面加载运行其他JavaScript代码。
有人可以告诉我如何做吗?
谢谢。


1
使用.load的回调函数。 - emco
1
为什么所有的字体都是粗体?我们也可以阅读普通字重的文字 ;) - Blender
10个回答

12

即使内容在主页面加载后加载,这个能行吗? - emco
你是如何加载新内容的? - Chetan
假设内容是使用某个元素的 onClick 事件加载的。这样会起作用吗? - emco
不太确定你的问题是什么。$(document).ready(handlerFunction) 只会在文档加载完成时执行 handlerFunction。如果你希望在使用 onClick 加载的内容上发生某些事件,你可以直接在 onClick 处理程序中进行指定。 - Chetan
1
我之前在$(document).ready()之前使用过这个,但它没有起作用。上面的示例布局中,我尝试了一个简单的JavaScript,在.load后隐藏div,它起作用了。谢谢。 - Benyamin

5
使用jQuery,你可以很容易地完成这个任务。
jQuery(document).ready(function(){
    alert('Your DOM is ready.Now below this u can run all ur javascript');
});

是的,我尝试过了。我不知道$(document).ready(function(){与jQuery(document).ready(function(){之间的区别。但我会再尝试一次。 - Benyamin
"$"只是"jQuery"的别名,它们没有任何区别。 - Sreekumar P

3
这是一个示例布局给你参考。
<script type="text/javascript">
    $(document).ready(function(){
        /// here you can put all the code that you want to run after page load
        function Javascript1(){
            //code here
        }

        function Javascript2(){
            // code here
        }

        $("#btnOK").live('click',function(){
            // some codes here
            Javascript1();
            Javascript2();
        });

    });
</script>

<div id="MyDiv">
    <input type="button" id="btnOK" value="OK"/>
</div>

@Benyamin,请将此帖子标记为答案,或者您认为解决了您的问题的任何答案。谢谢!:D - Carls Jr.

2

ready 中编写代码。

jQuery(document).ready(function(){

// write here
});

建议使用livebind

是的,我将$(document).ready(function(){更改为jQuery(document).ready(function(){。 - Benyamin

1
$(window).load(function() {
    // code here
});

我需要根据另一个元素的高度调整一些元素的大小。如果你也在尝试类似的事情,这个方法对我很有效。 - Hector

1

$(document).ready() 就是你所需要的。


1
除非需要在页面加载前使用JavaScript执行某些操作,否则请将脚本添加到HTML文档的末尾,在结束标签之前。页面将加载更快,您可以直接在js文件中执行所需操作,而无需使用document ready函数。
如果脚本是最后加载的,则DOM已经确保“准备就绪”。

是的,有些JavaScript需要在页面加载之前执行某些操作。我尝试使用jQuery(document).ready(function(){以及.live示例布局,目前效果不错。 - Benyamin

0

希望这也能对你有所帮助,我曾经遇到过类似的问题,通过在页面加载内容后(例如在将页面显示在 div 中的 AJAX 请求之后)调用以下内容来解决它:

(function($) {
 $(document).ready(function() {
  // your pretty function call, or generic code
 });
}(jQuery));

请注意不要在加载文档时调用此函数,而是在加载完成后的函数中调用。

0

您可以使用setTimeout方法使JavaScript等待指定的时间:

.setTimeout("name_of_function()",time_in_millis);

0

使用原生JavaScript,可以这样完成:

<html>
<head>
<script type="text/javascript">

// other javascript here

function onAfterLoad() { /*...*/ }

// other javascript here

</script>
</head>
<body>

<!-- HTML content here -->

<!-- onAfterLoad event handling -->
<div style="display:none;"><iframe onload="onAfterLoad();"></iframe></div>
</body>
</html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接