<!DOCTYPE html> <html> <head> <title>Script-inserted script</title> </head> <body> <div></div> <script> function log(text) { var p = document.createElement("p"); p.appendChild(document.createTextNode(text)); document.getElementsByTagName("div")[0].appendChild(p); } var head = document.getElementsByTagName("head")[0]; var external = document.createElement("script"); external.src = "bug591981-script.js"; head.insertBefore(external, head.firstChild); // what jQuery does var internal = document.createElement("script"); var data = "log('internal')"; try { internal.text = data; } catch(e) { internal.appendChild(document.createTextNode(data)); } head.insertBefore(internal, head.firstChild); // what jQuery does </script> </body> </html>