На самом деле, вы не можете использовать write
для вставки кода, не после завершения первоначального рендеринга страницы.
Загрузка кода
Мое первое чтение вашего вопроса состояло в том, что выхотел загрузить код - например, JavaScript.Вот как вы это делаете, но смотрите ниже.
Самый простой способ сделать это, если ваш код существует в своем исходном местоположении в файле JavaScript, и все готово для включения в файл обычным способом.В этом случае все, что вам нужно сделать, это создать элемент script
и добавить его в документ:
var script = document.createElement('script');
script.type = "text/javascript";
script.src = /* ... the URL of the code ... */;
document.body.appendChild(script);
document.body.removeChild(script);
Обратите внимание, что в последней строке удаляется узел script
сразу после вставки его в документ,Вставка узла - это все, что вам нужно сделать, это немедленно запускает процесс, с помощью которого файл JavaScript извлекается и интерпретируется.Вы можете немедленно удалить элемент script (или нет, это зависит от вас).
Выше я добавил элемент в document.body
, потому что это удобно и не имеет значения, где вы его добавляете,Однако большинство сценариев, которые вы видите, делают это, как правило, вместо этого добавляют его в head
.Это тоже хорошо.Подробнее в этой статье , хотя она сосредоточена на библиотеке прототипов.
Говоря о библиотеках, несмотря на все вышеперечисленное, если вы используете библиотеку JavaScript, такую как jQuery , Закрытие , Прототип , YUI или любой из нескольких других , это, вероятно, сделает это (даже) легче для вас.
Обновление : Вы добавили тег jQuery
позже?Я не видел это первоначально.В jQuery, если вы загружаете скрипт из того же источника, что и документ, вы можете использовать функцию getScript
:
jQuery.getScript('ajax/test.js');
// Or $.getScript('ajax/test.js');
Однако ,getScript
отличается от описанного выше.getScript
будет препятствовать политике Same Origin * , а добавление тега script
- нет.
Загрузка разметки
Если вы хотите загрузить разметку HTML ипримените его к части страницы, это легко сделать с помощью jQuery.load
:
$('#someid').load("yoururl.here");
, который заменит содержимое элемента с идентификатором "someid" на HTML, возвращаемый из данного URL. Вот живой пример , который загружает option
s в select
и другой , который загружает текст (абзац) в div.Это проще с библиотекой (например, jQuery), потому что есть некоторые проблемы вокруг определенных элементов, которые библиотеки обычно обрабатывают для вас.