Source code
Revision control
Copy as Markdown
Other Tools
/*
* Utility functions for script scheduler test
*/
(function(){ /* namespace hiding local variables like arOrderOfAllEvents from global scope */
window.testlib = {};
window.eventOrder = [];
var arNumberOfScriptsParsedPerEvent=[];
window.log = function (str){
eventOrder.push(str);
arNumberOfScriptsParsedPerEvent.push(document.getElementsByTagName('script').length);
}
window.testlib.addScript = function(source, attributes, parent, firstInParent,funcPrepare) {
try{
parent = parent||document.body;
var script = document.createElement('script');
if(funcPrepare) {
funcPrepare(script);
}
if(source)script.appendChild( document.createTextNode(source) );
for( var name in attributes){
if(/^on/i.test(name)) {
script[name] = attributes[name];
} else {
script.setAttribute(name, attributes[name]);
}
}
if (firstInParent && parent.firstChild) {
parent.insertBefore(script, parent.firstChild);
} else {
parent.appendChild(script);
}
} catch(e) {
log('ERROR when adding script to DOM!');
alert(e);
}
return script;
}
window.testlib.urlParam = function(relativeURL) {
return location.href.replace( /\d*\.html$/, relativeURL);
}
})();