Krisha
pain in the neck
innerHTML + script + div
Задача: Менять содержимое слоя и подставлять нужный JS.
Простой пример кода:
Проблема:
Загружаем страницу, кликаем на линку тест1 в слое получаем тест1, кликаем и видим алерт тест1. Далее, кликаем на линку тест2 в слое получаем тест2, кликаем и видим алерт тест1 ? Паника! При этом дом инспектор показывает, что там function draw_select() { alert("test2"); }
Вопросы:
Где я туплю?
Как и можно ли это дело заставить работать вообще?
Как и можно ли это дело заставить работать в ИЕ?
Спасибо!
Задача: Менять содержимое слоя и подставлять нужный JS.
Простой пример кода:
Код:
<html><body>
<script type="text/javascript">
var texts = {
1:'<a href="javascript:draw_select()">test1</a>',
2:'<a href="javascript:draw_select()">test2</a>'
}
var scripts = {
1:'function draw_select() { alert("test1"); }',
2:'function draw_select() { alert("test2"); }'
}
function f(id){
document.getElementById('myscript').innerHTML = scripts[id];
document.getElementById('mydiv').innerHTML = texts[id];
}
</script>
<a href="javascript:f(1)">[test1]</a><br />
<a href="javascript:f(2)">[test2]</a><br />
<script id="myscript" type="text/javascript"></script>
<div id="mydiv" style="border:red 1px solid;"></div>
</body>
</html>
Загружаем страницу, кликаем на линку тест1 в слое получаем тест1, кликаем и видим алерт тест1. Далее, кликаем на линку тест2 в слое получаем тест2, кликаем и видим алерт тест1 ? Паника! При этом дом инспектор показывает, что там function draw_select() { alert("test2"); }
Вопросы:
Где я туплю?
Как и можно ли это дело заставить работать вообще?
Как и можно ли это дело заставить работать в ИЕ?
Спасибо!