firefox works differently from ie when changesrc of a existing script , in ie this action cause the javascript engine to reload that script, and execute it ,while in firefox, nothing will happen
you can have your own test by following code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> < script id = " s1 " type = " text/javascript " > </ script > < script language = " javascript " type = " text/javascript " > document . getElementById( " s1 " ) . src = " 1.js " ; </ script >
in 1.js we simply alert some message
alert("executed");
So if you want the browser to execute some js dynamically , you need to reload the script element. Add a script element into DOM will causethe execution of the scriptin both browser,following code shows how to reload a script element
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> if ( this .element) this .element.parentNode.removeChild( this .element); this .element = document.createElement( " SCRIPT " ); this .element.type = " text/javascript " ; this .element.id = " MzJsonElement " ; this .element.src = url; document.getElementsByTagName( " HEAD " )[ 0 ].appendChild( this .element);
this might be helpful whenwe needour browser torun somejson callback script
<style type="text/css">.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } </style>