Monday, May 13, 2024
 Popular · Latest · Hot · Upcoming
97
rated 0 times [  104] [ 7]  / answers: 1 / hits: 92930  / 13 Years ago, wed, december 7, 2011, 12:00:00

I'm having problems with global variables.



Considering that I have the following files: init.html, main.html, init.js, main.js and help.js :



Where, init.html:



<HTML>
<HEAD>
<script type=text/javascript src=http://code.jquery.com/jquery-1.6.3.min.js></script>
<script type=text/javascript charset=UTF-8 src=init.js ></script>
<script type=text/javascript charset=UTF-8 src=main.js ></script>
<script type=text/javascript charset=UTF-8 src=help.js ></script>

</HEAD>
<BODY>
<script>
$(document).ready(function() {
test();
});
</script>
</BODY>
</HTML>


In init.js :



function test(){
alert(window.glob);
}


In main.html :



<HTML>
<HEAD>
<script type=text/javascript src=http://code.jquery.com/jquery-1.6.3.min.js> </script>
<script type='text/javascript' >
top.glob = global variable;
</script>
<script type=text/javascript charset=UTF-8 src=help.js ></script>
<script type=text/javascript charset=UTF-8 src=main.js ></script>
</HEAD>
<BODY>
<div id=divtest></div>
<form>
<input type=button value=button onClick=callTest() />
</form>
</BODY>
</HTML>


main.js:



function change(p){
window.glob = p;

$('#divtest').html(<iframe id='IFRAMEtest' width='720' height='400' frameborder='0' src='init.html'></iframe>);
}


And in help.js :



function callTest(){
change('param');
}


When I click in button, displays global variable, but I need to display param.



In short, I need that a .js file read a global variable in another js file where this variable is fed into a function called by an event of a user.



Thanks.



edit - initialized global variable before importing files. js and using top. Works in IE and firefox, but chrome display undefined


More From » html

 Answers
0

Take a look here:
Global variables in Javascript across multiple files
The main thing is, that you may have to declare the global variables
before the actual file, so try inserting this before your inclusion to help.js



so try giving this a shot.



<script type='text/javascript' > 
window.glob = global variable;
</script>


so your code should be:



<head>
<script type=text/javascript src=http://code.jquery.com/jquery-1.6.3.min.js ></script>

<script type='text/javascript' >
window.glob = global variable;
</script>

<script type=text/javascript charset=UTF-8 src=help.js ></script>
<script type=text/javascript charset=UTF-8 src=main.js ></script>
</head>


try that and see if it works.
also, remove your global variable declaration from main.js for this.


[#88695] Tuesday, December 6, 2011, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kristopherw

Total Points: 173
Total Questions: 107
Total Answers: 98

Location: Lesotho
Member since Wed, Jun 2, 2021
3 Years ago
;