You've got a super serious flaw in your logic
1) It appears you have this sitting on the page... no JS has been "loaded" or executed at this point <input type="button" onClick="loadjquery()" value="Click to test"/> 2) someone clicks the button, you call "loadjquery" 3) in there, you seemingly want to add the script tag to the <head>, at which point you seem to *hope* that this will run: $(document).ready(function() { alert("Hello from read()"); }); But that's the issue, It's way way waaay too late at this point, as the document was "ready" (and fired that event) once the HTML was sent to the browser and ready for DOM manipulation, which was forever ago at this point (right from the docs: "Binds a function to be executed whenever the DOM is ready to be traversed and manipulated") there is nothing gained by that method, although i would be curious as to what you think they may be the fact it worked on one browser is very much more than likely a quirk in that browser, not a bug in the library