JS, полученный через Ajax, не пашет. Почему?
document.write("<a href='#' onclick=alert('test')>test</a>");
</script>
полученный через Ajax... Замучил поисковики... Подскажите люди добрые, что, куда вписать)
2. Теги <script> относятся к html, а не к JS, их быть не должно
3. Если это происходит после загрузки страницы document.write() просто убьет весь документ и начнет писать с чистой страницы.
Так же в следующий раз, желательно привести сам код получения через ajax.
document.write("<a href='#' onclick=alert('test')>test</a>");
</script>
полученный через Ajax... Замучил поисковики... Подскажите люди добрые, что, куда вписать)
Пиши как это ты и что через аякс получаешь. Код в студию. Я вот через AJAX гоню с сервера на клиент HTML код вкупе с JS скриптами, динамически ставлю в текущий документ и у меня все работает...
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
define('STR','Login');
include('inc.php');
$login = encr($_GET['login']);
if (Authus($login,md5(md5($_GET['password'])))) {
$_SESSION['login'] = $login;
$_SESSION['password'] = md5(md5($_GET['password']));
setcookie("login",$login,$time+2592000);
setcookie("password",$_GET['password'],$time+2592000);
echo = "<script language='javascript'>
var pro = \"profile.php?xml=1&sid=".$id."\";
var out = \"logout.php?xml=1&sid=".$id."\";
document.getElementById('lay40').innerHTML = \"
<div class='style3' style='position:absolute; left:560px; top:40px; height:17px; visibility:visible'>
<span style='cursor:pointer' onclick='npage(pro)'><b>".$login." </b></span>    <span style='cursor:pointer' onclick='npage(out)'>Logout</span></div>\";
</script>..." ;
} else {
...
}
?>
а нафига хранить в куках хэш пароля юзера?
а нафига хранить в куках хэш пароля юзера?
Где ты видешь, что в куках храниться хэш?
Вот, что мне надо!) Можно по подробней, как это ты делаешь? Единственная мысль, которая приходит в голову, это перебирать responseText. Если встречаем "<script language='javascript'>", все в eval(), пока не встретим "</script>". Остальное вставляем в див. Достаточно жестко)) Может есть более простой способ?
Почему?
Ну собственно под AJAX я хотел бы увидеть JS код приложения. Клиентскую часть.
Ну собственно общия принципы я изложил вот тут: http://www.ixbt.com/soft/ajax.shtml
От перехвата ни спасет ни то ни другое... Максимум от чего спасут хэши так это от изменение данных профиля юзера. Спастись можно только либо через HTTPS, либо заставляя юзера логиниться в каждую сессию, а в хэш писать ник, пас, IP и еще может паре данных с клиента. Но таким обычно заморачиваются только для критических данных, для форумов и прочего обычно мозг не парят :D
А в исходном коде страницы не видно? Весь JS там почти только из этого и состоит.
:D видно. Просто уже привычка рассматривать только то, что пишется в тебе. По сабжу.
Это не совсем верно. Тебе бы стоило ознакомиться с DOM спецификацией. Лучше создать новые элемент, назначить в него полученый код с сервера, добавить элемент в дерево документа. Должно быть что-то в духе:
//ответ сервера в виде обычного текста
var docTEXT = requestObj.responseText;
//создаем элемент div
var div = document.createElement('div');
//добавляем ответ сервера в div
div.innerHTML = docTEXT;
//добавляем div с ответом сервера в дерево документа, т.е. в DOM
document.form.appendChild(div);
};
Попробуй, узнаешь ;) Один из вариантов решения я указал. Экспериментируй.
Ну у тебя твой код работает?....
А разница есть. Очищеный уже находиться в DOM и не факт, что браузер переназначит его содержимое как разметку, а не тект. А содержимое вновь добавляемого перед добавлением в дерево документа будет браузером парситься из текста в DOM. И потом я указал одно из возможных решений, можешь придумать свое.