Ondersteuning > Programmeren

Het handige javascripts topic

(1/1)

Koen Bokern:
Oke, javascripten is niet echt programmeren, maar toch pas het hier denk ik het beste.
Hebben je nog handige stukjes javascript die je wilt delen? Post ze dan hier. Als je het script niet zelf hebt geschreven, maar het perse wilt delen vermeld dan de bron, of enkel een link met beschrijving. Als je de code later bijwerkt, en de code hier update, is het handig om dit ook even te vermelden.

grabJS - Execute javascripts uit een string
Deze functie is bedoeld om stukken javascript uit een string uit te voeren. Handig bij webapplicaties waarbij je content inlaad mbv ajax. Ik heb voor het voorbeeld ook de html erbij gedaan. Deze is erg basic, er zit dus ook geen doctype bij. De variabele 'str' mag bij het echte werkt natuurlijk weggelaten worden. Dit is namelijk enkel voor de test.

Opmerking
Stel in het script komen meer dan 5 scripts voor, geef dan de variabele 'lmax'  een andere waarde. Deze variabele geeft aan hoevaak de while-lus maximaal mag loopen, dit om een eventuele oneindige loop te voorkomen.

Features:
* Laad script bestanden
* Evalueert scripts tussen script tags
* Support voor meerdere, verschillende scripts in een string.
* Werkt in firefox 3.0, overige browsers niet getest.

De (test) code:

--- Code: ---


// var str is enkel voor de test.
var str = 'alert("script2");';
function grabJS(input) {
var lmax = 5; // max loops
var i = 0;
while ((script = input.split(/(.*?)/)) !== false) {
if(i == lmax) { alert('Breaked a loop with no end!'); break; } else { i=i+1; } // we don't want a loop with no end.
if ( script == false || script == null || script == "" || !isdefined(script)) {
break;
}
var fileref="";
var src="";
var code="";
var attributes = "";
if(isdefined(script[1])) {
var attributes = script[1];
var src = (attributes.split(/src=\"(.*?)\"/))[1];
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", src);
}
if (fileref!="") {
document.getElementsByTagName("head").item(0).appendChild(fileref);
} else if(script[2]) {
eval(script[2]);
} else  {
break;
}
var input = input.replace(/(.*?)/, "");
}
window.focus();
return input;
}
 
function isdefined(variable) {
return (!(!( variable||false )))
}



Testing grab JS



--- Einde van code ---

Navigatie

[0] Berichtenindex

Naar de volledige versie