Динамический JavaScript проблемка...
Привет всем ! Такая проблемка ...
У меня идет Ajax - запрос формы т.е. загружаю форму в <div> контйнер ... в этой форму у меня есть опеделение функции напрмер function Test()... так вот погсле того как код вызвался мне нужно это функцию -Test запустить ,но она не запускается так как она не видна а именно ...приеду пример :
<div id="obtest"></div> <!--- сюда идет результат запроса --->
<script>
function KAL()
{
alert("KAL");
document.getElementById("obtest").innerHTML='<SCRIPT>function Test() { alert("Yes call test"); }<SCRIPT>';
}
</script>
<a href="" onClick="KAL();return false;">Смотреть</a><BR>
<a href="" onClick="Test();return false;">Call test</a>
Это как бы упрощенный пример того что происходит...Когда нажимаем на СМОТЕРТЬ то выполняется функция KAL которая показывает сообщение что она выполнилась и ЗАПОЛНЯЕТ КОНТЙНЕР (как если бы я вызывал Ajax запрос) obtest ,а заполняет -формирует скрипт Test внутри контейнера ...потом по кнопки Call test пытаемся его выполнить и ...он не выполняется потому что его не видать ХОТЯ ОН НА СТРАНИЦЕ есть ...вообще на сколько я понимаю надо про него как то доументу сообщить что он есть на странице ...Ну вообщем вот такая проблемка....Мож кто знает как обойти ее или как сообщить document что у меня появилась новая функция ... |
Невозможно читать, пишите по русски.
|
привел пример!м вставьте в HTML И запустите и увидите
|
Зачем класть скрипт в див?!
В любом случае советую использовать DOM-методы:
var script = document.createElement('script');
script.type = 'text/javascript';
script.appendChild(document.createTextNode('function Test() {alert("Yes call test");}'));
document.body.appendChild(script);
Test();
|
| Часовой пояс GMT +3, время: 04:40. |