I re-worked some code that seems to do it:
BEGIN-CODE
/*
// PASS IN AN HTML NODE, THIS WILL EXECUTE THE JAVASCRIPT IN THE
INNERHTML
*/
var js_ScriptFragment = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
// doesn't work for external javascript files, ie. <script src="http://
www....">
function js_updateElement(element) // PASS IN AN HTML NODE
{
var content = element.innerHTML;
setTimeout(function() {js_evalScripts(content)}, 10);
}
function js_extractScripts(str)
{
var matchAll = new RegExp(js_ScriptFragment, 'img');
var matchOne = new RegExp(js_ScriptFragment, 'im');
var arr = str.match(matchAll) || [];
var res = [];
for (var i = 0; i < arr.length; i++) res.push((arr[i].match(matchOne)
|| ['', ''])[1]);
return res;
}
function js_evalScripts(str)
{
var arr = js_extractScripts(str);
for (var i = 0; i < arr.length; i++) eval(arr[i]);
}
END-CODE
then you can integrate it into your existing function,
updatePageContent....
pages[currentPage].innerHTML = content;
js_updateElement(pages[currentPage]); // executes the javascript on
the page
pages[-currentPage].innerHTML = "";