Подскажите почему не выполняется динамически вставленный Javascript?
<html>
<body>
<div id='#testdiv'>Click a button to fill this DIV</div></br>
<button onclick='BClick()'>Fill</button>
<script language=javascript>
<!--
function BClick()
{
var TDiv = document.getElementById("#testdiv")
if (TDiv)
TDiv.innerHTML = "Alert<script language=javascript>alert('Hello world!!!')</script>"
}
//-->
</script>
</body>
</html>
Просто по условию задачи программа может делать всё что угодно но в своём диве, ID которого предварительно оговаривается с заказчиком. Нужно динамически наполнить этот див html элементами, а также добавить скрипт, в скрипте есть глобальные переменные, и оборачивать скрипт как одну функцию крайне нежелательно. Кто что посоветует?
Здравствуйте, Dizzy, Вы писали:
D>Подскажите почему не выполняется динамически вставленный Javascript?
А почему должен? Он вставляется, а выполняться его никто не просил.
D>Просто по условию задачи программа может делать всё что угодно но в своём диве, ID которого предварительно оговаривается с заказчиком. Нужно динамически наполнить этот див html элементами, а также добавить скрипт, в скрипте есть глобальные переменные, и оборачивать скрипт как одну функцию крайне нежелательно. Кто что посоветует?
Странная постановка задачи. Ну делайте все вне дива. Просто вместо this пишите document.getElementById("#testdiv") вот и все.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Если программист в рабочее время играет, значит —
либо у него мало работы и большая зарплата,
либо у него много работы и маленькая зарплата.
Здравствуйте, kost-BebiX, Вы писали:
KB>А почему должен? Он вставляется, а выполняться его никто не просил.
Хм, тогда можно как-то натравить на него пожиратель скриптов не оборачивая функцией?
Может есть какойто метод ака Invoke, только не по имени функции, а по имени/айди скрипт тега?
KB>Странная постановка задачи. Ну делайте все вне дива. Просто вместо this пишите document.getElementById("#testdiv") вот и все.
Согласен, странная, но то что вне дива гипотетичски мне недоступно. Ну представьте ситуацию — клиент даёт сверстанную html и говорит — вот тебе див с еужным айди, делай в нём все что хочешь, но только в нём.
На самом деле в моей реализации скрипт в див вставляет не яваскрипт, а c# приложение, но тем же способом — через innerHTML, а для наглядности я передерал код так чтобы javascript втавлял javascript. А вот как запустить втавленное, я не могу понять.
Здравствуйте, Dizzy, Вы писали:
D>Хм, тогда можно как-то натравить на него пожиратель скриптов не оборачивая функцией? D>Может есть какойто метод ака Invoke, только не по имени функции, а по имени/айди скрипт тега?
Не понял что такое invoke, но в JavaScript есть http://www.google.com.ua/search?hl=ru&rls=GGGL%2CGGGL%3A2006-29%2CGGGL%3Aru&q=javascript+eval&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&meta=
D>Согласен, странная, но то что вне дива гипотетичски мне недоступно. Ну представьте ситуацию — клиент даёт сверстанную html и говорит — вот тебе див с еужным айди, делай в нём все что хочешь, но только в нём. D>На самом деле в моей реализации скрипт в див вставляет не яваскрипт, а c# приложение, но тем же способом — через innerHTML, а для наглядности я передерал код так чтобы javascript втавлял javascript. А вот как запустить втавленное, я не могу понять.
Честно — все равно не понял. Если так, как вы говорите, то получается, что следует все делать на сервере (вставлять в див) и не мучаться. Иначе — плавающим фреймом.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Если программист в рабочее время играет, значит —
либо у него мало работы и большая зарплата,
либо у него много работы и маленькая зарплата.
Здравствуйте, 12345_, Вы писали:
_>Если вставлять AJAX-ом (XMLHttp), то не будет выполняться, если ноды, то, видимо, тоже — нужен eval(). Если вставлять как src тега script, то будет.
Никто про аякс и не заикался
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Если программист в рабочее время играет, значит —
либо у него мало работы и большая зарплата,
либо у него много работы и маленькая зарплата.
Здравствуйте, Dizzy, Вы писали:
D>Подскажите почему не выполняется динамически вставленный Javascript?
D>
D><html>
D> <body>
D> <div id='#testdiv'>Click a button to fill this DIV</div></br>
D> <button onclick='BClick()'>Fill</button>
D> <script language=javascript>
D> <!--
D> function BClick()
D> {
D> var TDiv = document.getElementById("#testdiv")
D> if (TDiv)
D> TDiv.innerHTML = "Alert<script language=javascript>alert('Hello world!!!')</script>"
D> }
D> //-->
D> </script>
D> </body>
D></html>
D>
D>Просто по условию задачи программа может делать всё что угодно но в своём диве, ID которого предварительно оговаривается с заказчиком. Нужно динамически наполнить этот див html элементами, а также добавить скрипт, в скрипте есть глобальные переменные, и оборачивать скрипт как одну функцию крайне нежелательно. Кто что посоветует?
Используй DEFER во вложенном скрипте: <script DEFER language=javascript>