[JS] Wykonanie skryptu pod dołączeniu go przez innerHTML

0

Cześć,

Wczytuję na swoją stronę asynchronicznie inne strony z wykorzystaniem XMLHttpRequest. Niestety gdy taką stronę dołączam przez zmienną innerHTML, a zawiera ona jakieś skrypty JavaScript nie wykonują się one.

Jak mogę wymusić wykonanie tych skryptów? Przyszło mi na myśl, że pobiorę wszystkie tagi <script /> z wczytywanej strony i wywołam jakąś metodę (pytanie jaką?) która wykona mi zawartość tych skryptów zakładając funkcje czy zmienne.

Problem w tym, że nie wiem jaką metodą to wykonać, a problem drugi, to czy jeśli założę tam zmienną będę miał do niej dostęp z poziomu wczytywanego pliku?

Poproszę Was o pomoc.

0

eval

0

może po prostu wszystkie funkcje zapisuj w pliku scripts.js?

0
function EvalScripts(html) {
	var script;
	var reg = /(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/gi;
	var reg2 = /(?:<script.*?src=['"]{1}([^>]*)['"]{1}[^>]*>)((\n|\r|.)*?)(?:<\/script>)/gi;
	
	while(script = reg.exec(html)) {
		if(script[1]) window.execScript ? window.execScript(script[1]) : setTimeout(script[1], 0);
	}
	
	while(script = reg2.exec(html)) {
		if(script[1].length > 0) {
			var s = document.createElement("script");
			s.type = "text/javascript";
			s.src = script[1];
			document.body.appendChild(s);
		}
	}	
}

Daj wynik przez tą funkcję. Pochodzi z www.mintajax.pl

1 użytkowników online, w tym zalogowanych: 0, gości: 1