I’m coding a script that will be used on several websites as a plugin. I have to use only Javascript, no framework. I’m asking myself, what is the best way to load my script without causing any trouble with other scripts or frameworks that can be loaded on these websites.
I thought to do a global function where i call the functions I want to use, and I put this function on the window.load event, like this :
<script>
var global = function(){
object.domain.function1();
object.domain.function2(param1, param2);
object.domain.function3(1);
}
(function(){
if(document.addEventListener){
document.addEventListener('load',global, false);
}
if(document.attachEvent){
document.attachEvent('onload',global);
}
})();
</script>
Or simply :
<script>
object.domain.function1();
object.domain.function2(param1, param2);
object.domain.function3(1);
</script>
Of course, I need some elements are loaded on my page.
Thanks in advance.
The things you need to consider are, are you..
The second point is easy to work around,
.addEventListenersupports adding many listeners for the same event which won’t overwrite each other. There are two different events you might be interested in,'load'onwindowand'DOMContentLoaded'ondocument. You can always put a<script>at the very end of<body>but I personally don’t like doing this because you’re mixing HTML with JavaScript or changing the DOM tree.For the first point, this can be done via the use of anonymous functions and, should you need to occupy the namespace, keeping all of your variables and methods inside one object to minimise your impact.
Putting all this together you may end up with something like this