Ниже наглядный пример, который через метод replaceChild инициирует запуск вставленных в DOM скриптов. Только в первом случае подготовка делается через createElement, во втором через cloneNode. Мне лично больше нравиться второй вариант, который и компактнее и правильнее т.к. позволяет копировать всевозможные атрибуты. Но почему второй вариант не нравиться мозилле я не понимаю.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Внедренный JavaScript</title>
<script type="text/javascript">
function ggg(k) {
var to = document.getElementById("bbb");
to.innerHTML = 'Some text<br/><script id="fedora-banner" type="text/javascript" src="http://fedoraproject.org/static/js/release-counter-ext.js?lang=ru"><\/script>';
//Исполнение внедренных JavaScript скриптов
var scripts = to.getElementsByTagName("script");
var script;
for (var i = 0; script = scripts[i]; i++)
switch (k) {
case 1:
//Везде работает
var newScript = document.createElement('script');
newScript.type="text/javascript";
if (script.id) newScript.id = script.id;
if (script.src) newScript.src = script.src;
if (script.text) newScript.text = script.text;
script.parentNode.replaceChild(newScript, script);
break;
case 2:
//В Mozilla FF не работает (в IE, Opera, Chrome - работает)
var newScript = script.cloneNode(true);
script.parentNode.replaceChild(newScript, script);
break;
}
}
</script>
</head>
<body>
<input type="button" value="exec v1" onclick="ggg(1)" />
<input type="button" value="exec v2" onclick="ggg(2)" />
<div id="bbb" />
</body>
</html>