.innerHTML и .html()
целый день уже не могу понять почему так происходит, значит есть элемент, при клике по нему создаётся новый блок, и потом через ajax данные попадают в этот блок
var form = document.createElement('div');
form.setAttribute('id', 'reg');
form.innerHTML = '<img src="/assets/img/loading.gif" width="227" height="28" alt="Loading..." style="margin-left:-10px;margin-top:-10px;">';
document.body.appendChild(form);
ajax({
url: '/reg/',
cache: false,
success: function(data) {
form.innerHTML = data;
}
});
data в себе также содержит код js необходимый для функционирования полученных данных, так вот, всё вроде получается, данные попадают куда надо, в том числе и js код, но загруженный js не работает, что странно, когда подключаю jquery и пишу $('#reg').html(data), то всё прекрасно работает, попробовал сделать вот так: document.getElementById('reg').innerHTML = data; не помогло, попробал убрать src у тега script и вписать код прямо в нём (ну а мало ли что), тоже не помогло, вобщем как ни стараюсь скрипт не хочет работать без .html(), а только из-за этого подключать jquery слишком жирно, подскажите пожалуйста как быть |
Tecvid,
элементы c js в jQuery нун подгружать на страницу таким макаром Цитата:
В нативном js, чтобы скрипт заработал нун сначало создать элемент: var s = document.createElement('script'); Затем добавить содержимое скрипта: s.text = cодержимое; Затем добавить скрипт на страницу: document.body.appendChild(s); =============
var s = document.createElement('script');
s.text = "alert('A')";
document.body.appendChild(s);
|
Deff,
:blink: а jQuery тут причём? |
Цитата:
|
Цитата:
=============== Приведите конкретный пример содержимого формы с исполняемым js - Так будет проще решать, чем на пальцах! |
Цитата:
|
Цитата:
Если нативно то уж XMLHttpReques |
Tecvid,
Аякс - из jQuery ? или откель ? |
Цитата:
<link type="text/css" rel="stylesheet" href="/assets/css/reg.css">
<div id="note"></div>
<img id="close" src="assets/img/close.gif" width="7" height="8" alt="x">
<form id="regForm" name="reg" action="/reg/register/" method="post">
<input id="email" class="standby" type="text" name="email" maxlength="100" value="E-mail">
<input id="passP" class="standby" type="text" value="Şifrə"><input id="pass" class="standby" type="password" name="pass" maxlength="50" value="">
<input id="confP" class="standby" type="text" value="Şifrəni təsdiqləyin"><input id="conf" class="standby" type="password" name="conf" maxlength="50" value="">
<input id="fname" class="standby" type="text" name="fname" maxlength="50" value="Ad">
<input id="sname" class="standby" type="text" name="sname" maxlength="50" value="Soyad">
<span class="radio">
<input id="M" type="radio" name="gender" value="m">
<label id="male" for="M">Kişi</label>
</span>
<span class="radio">
<input id="F" type="radio" name="gender" value="f">
<label id="female" for="F">Qadın</label>
</span>
<input id="bd" class="born standby" type="text" name="bd" maxlength="2" value="Gün">
<input id="bm" class="born standby" type="text" name="bm" maxlength="2" value="Ay">
<input id="by" class="born standby" type="text" name="by" maxlength="4" value="İl">
<input id="submit" type="submit" name="submit" value="Qeydiyyat">
</form>
<input id="auth2" type="button" value="Giriş">
<script type="text/javascript" src="/assets/js/reg.js"></script>
|
Цитата:
function ajax(options) {
function getXmlHttp() {
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
var xmlhttp = getXmlHttp(),
type = options.type || 'GET';
xmlhttp.open(type, options.url, true);
xmlhttp.setRequestHeader('X-REQUESTED-WITH', 'XMLHttpRequest');
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
options.success(xmlhttp.responseText);
}
}
};
var data = options.data || null;
xmlhttp.send(data);
}
|
| Часовой пояс GMT +3, время: 07:14. |