JS & innerHTML
3 отговора
0 прегледа
JS & innerHTML
Здравейте
От няколко дена си играя с AJAX и се натъкнах на следния проблем
имам една основна страница в която чрез AJAX добавям HTML + JS
HTML е ок но скрипта който вмъквам
не работи предполам причината е в това че JS не се интерпретира
след като е вмъкнат по този начин. Интересно ми е възможно ли е
да се изпълни такъв скрипт и как точно.
Благодаря предварително.
От няколко дена си играя с AJAX и се натъкнах на следния проблем
имам една основна страница в която чрез AJAX добавям HTML + JS
HTML е ок но скрипта който вмъквам
не работи предполам причината е в това че JS не се интерпретира
след като е вмъкнат по този начин. Интересно ми е възможно ли е
да се изпълни такъв скрипт и как точно.
Благодаря предварително.
Re: JS & innerHTML
В отговор на:
eval() ?
Ето ти една идея. Няма да работи за външни скриптве
(инклуднати със script src). Тествах го със един външен html.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[линк]">
<html xmlns="[линк]">
<head>
<meta http-equiv="content-type" content="text/html;charset=windows-1251"/>
<title>
</title>
<script type="text/javascript">
function xmlhttpQuery(strURL)
{
var xmlHttpReq = false;
var self = this;
if (window.XMLHttpRequest && typeof document.namespaces == 'undefined')
{
self.xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('GET', strURL, true);
self.xmlHttpReq.onreadystatechange = function()
{
if (self.xmlHttpReq.readyState == 4)
{
drawOut(self.xmlHttpReq);
}
}
self.xmlHttpReq.send(null);
}
function drawOut(aDom)
{
var myoutput = document.getElementById("myoutput");
var re = /<[^>]*script[^>]*>(?:.|\s)*?<[^>]*\/[^>]*script[^>]*>/gi;
var myscripts = aDom.responseText.match(re);
if(myscripts!=null)
createScripts(myscripts);
}
function createScripts(aScripts)
{
for(var j = 0;j<aScripts.length;j++)
{
var cr = aScripts[j];
var myItems = cr.split(/<[^>]*script[^>]*>/gi);
/**
* Тука IE6 имаше много
* странно мнение ...
*/
myItems = myItems.length > 1 ? myItems[1] : myItems;
var newScript = document.createElement("SCRIPT");
var myHead = document.getElementsByTagName("HEAD");
myHead = myHead[0];
myHead.appendChild(newScript);
newScript.type = "text/javascript";
newScript.text = myItems;
}
}
</script>
</head>
<body>
<table>
<tr>
<td>
<input type="button" value="Click IT" onclick="xmlhttpQuery('somewhere.html');">
</td>
</tr>
</table>
</body>
</html>
Re: JS & innerHTML
ако JS скриптът е публикуван след <iframe> таг скриптовете във Firefox не работят. Мъчих се преди време да разбера, защо не работи един скрипт и успях да установя, че това е причината.