2013-05-14 2 views
0

Когда вам нужно стрелять несколько функций при загрузке страницы, вы можете справиться с этим, используя что-то вроде этого:Внешние JS функции OnLoad сталкиваясь с другими пользовательскими функциями OnLoad

function myfunction() { 
    alert('My function!'); 
} 

function pctaddLoadEvent(func) { 
    var oldonload = window.onload; 
    if (typeof window.onload != 'function') { 
    window.onload = func; 
    } else { 
    window.onload = function() { 
     if (oldonload) { 
     oldonload(); 
     } 
     func(); 
    } 
    } 
} 

pctaddLoadEvent(myfunction); 

http://jsfiddle.net/SSEhr/

Это работает нормально, если вы запустите функцию, которую нужно активировать, используя функцию pctaddLoadEvent. НО, если этот фрагмент кода предназначен для вставки на разные страницы с использованием внешнего JS-файла, мне нужно иметь в виду надежность моего кода и позволяет сказать, что кто-то включает theexamplecode.js на своем веб-сайте, НО их также имеют некоторые Javascript на их веб-страницы, и у них есть что-то вроде:

window.onload = function() { 
    alert('user function'); 
    //and some other user functions 
} 

Это сломает мой код, как вы можете видеть here.

Так что в нескольких словах, как я могу запустить свою функцию onload, не касаясь возможных функций пользователя?

PS. Я не могу использовать jquery.

ответ

0

Я думаю, что проблема может быть решена с помощью пространств имен функций попробовать это javascript namespacing

Смежные вопросы