Revision: 37715
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 15, 2010 20:22 by madr
Initial Code
/**
* attach_and_execute_scripts helper function
* Copyright (c) 2010 by Anders Ytterström <http://madr.se>
* Released under the MIT license.
*
* Description:
* A light-weight function to extract and execute SCRIPT from
* an ajax response. it also attach the new content to the DOM
* tree.
*/
function attach_and_execute_scripts(wrapper_elm, ajax_response, create_target) {
var target_elm;
var extracted_scripts;
extracted_scripts = (function (tmp_elm) {
tmp_elm.innerHTML = ajax_response;
var refs = [], scr = tmp_elm.getElementsByTagName('script');
for (var i = 0, max = scr.length; i < max; i++) {
refs.push(scr[i].cloneNode(true));
}
return refs;
})(document.createElement('div'));
// will prevent Gecko from executing scripts twice
cleaned_markup = ajax_response
.replace(/<script[^>]*>[nsS]*?</script>/img, '');
target_elm = create_target(cleaned_markup);
wrapper_elm.appendChild(target_elm);
// caution: document.write will break the page!
if (extracted_scripts) {
for(var i = 0, max = extracted_scripts.length; i < max; i++) {
target_elm.appendChild(extracted_scripts[i]);
}
}
}
Initial URL
Initial Description
Initial Title
Attach ajax content and execute scripts in it
Initial Tags
ajax, javascript, textmate
Initial Language
Other