编程-javascript addLoadEvent函数为什么在页面加载后调用的函数没有执行

问题描述

javascript addLoadEvent函数为什么在页面加载后调用的函数没有执行
 # 函数如下
function addLoadEvent(func){
    var oldonload=window.onload;
    if(typeof window.onload !='function'){
    window.onload=func;
    }
    else{
    window.onload=function(){
    oldonload();
    func();
    }
    }
}


function loadEvents() {
// home
prepareSlideshow();
// about
prepareInternalnav();
// photos
preparePlaceholder();
prepareGallery();
// live
stripeTables();
highlightRows();
displayAbbreviations();
// contact
focusLabels();
prepareForms();
}


// Load events
addLoadEvent(highlightPage);
addLoadEvent(loadEvents);


函数我可以保证没写错,我是在看javasript DOM编程艺术这边书12章编写的时候出的问题,函数没有被执行,我试过火狐断点调试,并没有看出什么错误。。

解决方案

highlightPage函数没见你在哪里定义的,f12打开浏览器开发工具看报什么错误

解决方案二:

批量处理页面加载后执行得javascript函数

解决方案三:

<!DOCTYPE html>

MyHtml.html

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/JavaScript">
    alert("hello");
    function told(){
        alert("come on");
    };
    function addLoadEvent(func){
         alert("2423");
        var oldonload=window.onload;
           alert(oldonload);//为null
        if(typeof window.onload !='function'){
            window.onload=func;
            }else{
                window.onload=function(){
                oldonload();
                func();
            }
        }
    }
    function loadEvents() {
      // home
      prepareSlideshow();
      // about
      prepareInternalnav();
      // photos
      preparePlaceholder();
      prepareGallery();
      // live
      stripeTables();
      highlightRows();
      displayAbbreviations();
      // contact
      focusLabels();
      prepareForms();
    }
    //addLoadEvent(highlightPage);
    //addLoadEvent(loadEvents);

</script>

测试

测试1
测试2

我好像可以调用,通过点击按钮调用的,只是不太明白你是什么意思,是不是想要达到这样的效果。

解决方案四:

//addLoadEvent(highlightPage);
//addLoadEvent(loadEvents);
</script>

测试
解决方案五:

如果我猜的没错,你应该是要实现传统事件绑定的覆盖问题,解决方法将以前存在的相同事件存储起来,然后先执行第一个事件,再执行第二个事件,代码如下:

window.onload = function(){
    fun();
};

if(window.onload){
    var saved = null;
    saved = window.onload;
}

window.onload = function(){
    if(saved) saved();
    fun2();
};

解决方案六:

如果需要执行多个onload函数,请参考这个。

/*
* 添加window的onload触发器,避免多个onload无法执行的情况
*/
var addWinloadListener:=function (func) {
//如果没有onload,则直接赋值,不用添加监听事件
if (!window.onload) {
window.onload = func;
} else {
if (window.addEventListener) {
window.addEventListener("load", func, false);
} else if (script.attachEvent) {
window.attachEvent("onload", func);
}
}
}

时间: 2024-12-21 01:26:59

编程-javascript addLoadEvent函数为什么在页面加载后调用的函数没有执行的相关文章

常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数_javascript技巧

为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护.所以我用js写了以下方法,存放在"sourceController.js"文件内. function sourceController(){ var root = ""; var cssCount = 0; // css加载计数器 var jsCount = 0; // js加载计数器 this.callfunc = null; // 回调函数 this.

Jquery 在页面加载后执行的几种方式

 这篇文章主要介绍了Jquery 在页面加载后执行的几种方式,需要的朋友可以参考下 方式1:   代码如下: $(function(){    initPublish();    });    说明: initPublish() 即为你要运行的JS函数:这段代码,放在页面最低端.    方式2:  代码如下: $(document).ready(function () {    // add your code here    initPublish();    $(.a).click( fun

C# webBrowser 页面加载后,点击里面的不同连接

问题描述 C#webBrowser页面加载后,点击里面的不同连接.但前面几个连接的数据取到了.后面的不行了.如何才能准确的取到内容?if(e.Url==webBrowserlogo.Url&&(e.Url.ToString()=="http://www.bestb2b.com/jsp/signin.jsp"))//加载一次{count++;if(count==1){//第一次加载验证码更换HtmlElementImgeTag=webBrowserlogo.Documen

PHP + JavaScript + Ajax 实现无刷新页面加载效果

数据源工厂 Json生成方式1 Json生成方式2 数据搬运工 数据加工师 转换类型 加工展示 结果展示 初始页面 点击按钮之后 总结 今天这个实验的思路就是实现一个无刷新的页面加载效果.具体的思路是使用PHP开发后台,为前台准备数据,然后使用Ajax技术作为数据的搬运工,将数据从服务器端拉取到前端,最后使用JavaScript技术将获取到的数据加工,并显示在页面上. 数据源工厂 本次实验数据以Json的格式传输和处理.下面有两种生成json字符串的方式. Json生成方式1 PHP自带json

jsp的注释可能会影响页面加载速度让代码扔继续执行

 在jsp页面使用"<!-- -->"的注释,注释里面的java代码还是会得到执行,可以再查看页面源代码上看到执行完成的内容,这样就会让不希望执行的代码得到执行,影响加载速度.比如如下代码:   代码如下: 性别:<select name="qureyItemGroup.sex" class="selinp" style="width:75px;">  <option value="&q

页面加载时就确定函数实现

我们知道使用js获取浏览器的信息时经常涉及浏览器的兼容性.例如获取浏览器的滚动条 Js代码   // Cross browser gets the position of scroll   com.whuang.hsj.getScroll=function(){       return {           top:document.documentElement.scrollTop || document.body.scrollTop,           left:document.do

Jquery 在页面加载后执行的几种方式_jquery

方式1: 复制代码 代码如下: $(function(){ initPublish(); }); 说明: initPublish() 即为你要运行的JS函数:这段代码,放在页面最低端. 方式2: 复制代码 代码如下: $(document).ready(function () { // add your code here initPublish(); $(.a).click( function (){ // add your code here }); }); 方式3: 复制代码 代码如下:

如何比较不同浏览器的页面加载时间

比较浏览器性能的通用方法 在比较不同浏览器的性能时,最重要的一条就是选择一些性能指标.通常,这些指标都来自标准化的Web API.关于性能比较, 可以使用Navigation Timing(导航计时),它是一个可以在web中精确测量性能的javascript API.这个API提供了一个简单的方法来获得页面导航.加载事件的精确而又详细的时间状态.需要注意的是,Navigation Timing的目的是用于分析页面整体性能指标.如果要获取个别资源(例如JS.图片)的性能指标,请使用Resource

Javascript在网页页面加载时的执行顺序

javascript|加载|网页|页面|执行 一.在HTML中嵌入Javasript的方法 直接在Javascript代码放在标记对<script>和</script>之间 由<script />标记的src属性制定外部的js文件 放在事件处理程序中,比如:<p >点击我</p> 作为URL的主体,这个URL使用特殊的Javascript:协议,比如:<a href="javascript:alert('我是由javascript