метод загрузки окна с помощью javascript - PullRequest
1 голос
/ 29 октября 2010

с Javascript, мне интересно, каков текущий лучший способ загрузки моего кода на страницу (без jQuery) после загрузки остальной части страницы. Так как окно. Загрузка ...

Я искал несколько вариантов, но все они кажутся устаревшими и не совсем кросс-браузерными.

Похоже, это будет лучше? Это работает, я получил его от онлайн-инструментов , но я думаю, что он появился из Скотта Эндрюса

 function addEvent(obj, evType, fn) { 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}

function init () {
// do something
}

addEvent(window, 'load', init); 

Несмотря на то, что он работает и проходит все мои тесты и выглядит довольно гибким, я немного обеспокоен этим подходом, потому что

1) Я не совсем понимаю

2) Кажется, старая страница Скотта Эндрюса с 2001 года!

3) Технической поддержке Opera это не понравилось, см. «Голос Оперы» в онлайн-инструментах

Это лучший способ сделать это?

1 Ответ

1 голос
/ 29 октября 2010

С Источник Javascript

/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Caleb Duke | http://www.askapache.com/ */

//------------------------------------
// heavily based on the Quirksmode addEvent contest winner, John Resig
// addEvent
function addEvent(obj,type,fn){
    if(obj.addEventListener) obj.addEventListener(type,fn,false);
    else if(obj.attachEvent){
        obj["e"+type+fn]=fn;
        obj[type+fn]=function(){obj["e"+type+fn](window.event);}
        obj.attachEvent("on"+type,obj[type+fn]);
    }
}

//------------------------------------
// removeEvent
function removeEvent(obj,type,fn){
  if(obj.removeEventListener) obj.removeEventListener(type,fn,false);
  else if(obj.detachEvent){
    obj.detachEvent("on"+type,obj[type+fn]);
    obj[type+fn]=null;
    obj["e"+type+fn]=null;
  }
}
...