|
|
|
Forum Guru
      
участник
Last Login: 24.01.2008 14:59
Сообщ.: 68,
Visits: 545
|
|
| Задача такая: динамически подключать внешний скрипт .js. Пробовал несколько вариантов - ни один не заработал( 1. вариант // обращение к <SCRIPT></SCRIPT> по id s = document.getElementById('s_id'); s.src = '/script.js'; 2. вариант s = document.createElement("SCRIPT"); body.appendChild(s); s.language = "JavaScript"; s.src = '/script.js'; по серверным логам видно, что в обоих вариантах не происходило обращение к данному скрипту
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Вот работающий пример:<html><head> <title>зи тест</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <script language="javascript" type="text/javascript"> function createScript(scriptSrc) { var span = document.createElement('SPAN'); span.style.display = 'none'; document.body.insertBefore(span, document.body.lastChild); span.innerHTML = 'Text for stupid IE.<s'+'cript></' + 'script>'; setTimeout(function() { var s = span.getElementsByTagName('script')[0]; s.language = 'JavaScript'; if (s.setAttribute) s.setAttribute('src', scriptSrc); else s.src = scriptSrc; }, 10);} </script> </head> <body> <input type="button" onclick="createScript('hello.js')" value='Click me'> </body></html> Реализация взята из библиотеки JsHttpRequest.
|
|
|
|
|
Forum Guru
      
участник
Last Login: 24.01.2008 14:59
Сообщ.: 68,
Visits: 545
|
|
| хм...именно оттуда я этот кусок брал пробовать и ничего не работало. сейчас еще раз попробовал - работает). что-то пропустил. спасибо огромное)
|
|
|
|
|
Forum Guru
      
участник
Last Login: 24.01.2008 14:59
Сообщ.: 68,
Visits: 545
|
|
и еще один вопрос по теме. данные, которые я передаю в подгружаемом скрипте, отображаются только после повторной подгрузки скрипта.
например скрипт подгружется по onfocus. при первом событии ничего не происходит, хотя к скрипту идет обращение. при повторном событии - все нормально. тоже самое если обновляются данные в подгружаемом скрипте - т.е. при первом событии отобрадаются старые данные, а при поторном событии - уже новые.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Не знаю даже. Может это результат кеширования?
|
|
|
|
|
Forum Guru
      
участник
Last Login: 24.01.2008 14:59
Сообщ.: 68,
Visits: 545
|
|
| Порасставлял таймера по коду - с ними работает. Подозрительно. Остался плохой осадок.
|
|
|
|
|
Forum Member
      
участник
Last Login: 13.04.2007 16:44
Сообщ.: 34,
Visits: 87
|
|
| <div id='MyDiv' style='behavior:url(#default#download)'></div> <script> function Import(strURL){ MyDiv.startDownload(strURL,new Function('contents','MyDiv.innerHTML=contents')) } </script> <a href=javascript:void(0) onclick=Import('file.txt')>text1</a><br> //file.txt <p id='ppp'>ffff <script defer> document.all.ppp.insertAdjacentHTML("afterEnd","<p>Строка 2"); </script> //IE defer или таймкоды
|
|
|
|