Passing parameters to JavaScript files
javascript, parameter-passing
Solution
I'd recommend not using global variables if possible. Use a namespace and OOP to pass your arguments through to an object.
This code belongs in file.js:
var MYLIBRARY = MYLIBRARY || (function(){
var _args = {}; // private
return {
init : function(Args) {
_args = Args;
// some other initialising
},
helloWorld : function() {
alert('Hello World! -' + _args[0]);
}
};
}());
And in your html file:
<script type="text/javascript" src="file.js"></script>
<script type="text/javascript">
MYLIBRARY.init(["somevalue", 1, "controlId"]);
MYLIBRARY.helloWorld();
</script>
Problem
Often I will have a JavaScript file that I want to use which requires certain variables be defined in my web page. So the code is something like this: ``` <script type="text/javascript" src="file.js"></script> <script type="text/javascript"> var obj1 = "somevalue"; </script> ``` But what I want to do is: ``` <script type="text/javascript" src="file.js?obj1=somevalue&obj2=someothervalue"></script> ``` I tried different methods and the best one yet is to parse the query string like this: ``` var scriptSrc = document.getElementById("myscript").src.toLowerCase(); ``` And then search for my values. I wonder if there is another way to do this without building a function to parse my string. Do you all know other methods?