Можно ли загрузить javascript-код с помощью тега <link>
на моем веб-сайте?
Например, у меня есть файл javascript, test.js
, который содержит простой код alert('hello');
Можно ли создать всплывающее окно с помощью:
<link href="test.js"></link>
Можно ли загрузить javascript-код с помощью тега <link>
на моем веб-сайте?
Например, у меня есть файл javascript, test.js
, который содержит простой код alert('hello');
Можно ли создать всплывающее окно с помощью:
<link href="test.js"></link>
Нет. Было предложено разрешить:
<link rel="script" href=".../script.js"/>
аналогично таблицам стилей. Это даже приведено в качестве примера в HTML 4 DTD, но реализация браузера так и не состоялась. Позор, так как это было бы намного чище.
Вам нужно использовать тег <script>
для включения исходных файлов JavaScript:
<script type="text/javascript" src="mysrc.js"></script>
Конечный тег должен быть полным </script>
, не сокращайте способ, как вы можете, с помощью некоторых тегов, как в <script type="text/javascript" src="..."/>
.
Да, операторы предупреждений в включенном источнике появятся, когда они будут оценены браузером.
Информацию об использовании тега <link>
см. в w3.org.
Возможное обоснование, почему нет:
link
разрешены только там, где допускается "Содержимое метаданных", обычно head
, а не в body
. См. Контексты, в которых этот элемент можно использовать. Все вложенные элементы, которые входят в body
, имеют для них отдельные элементы: img
, iframe
и т.д.
link
должны быть пустыми, а script
может быть непустым. См.: Модель контента
Поэтому естественно иметь отдельный элемент для JavaScript, и поскольку у нас должен быть отдельный элемент, лучше не дублировать функциональность с помощью link rel="script"
.
Эта теория также объясняет, почему img
и style
имеют отдельные элементы:
img
может быть помещен в тело, поэтому он получает отдельный элемент, хотя он должен быть пустым.
style
может быть непустым, поэтому он получает отдельный элемент, хотя до тех пор, пока HTML5 не может быть помещен в body
(теперь он может через scoped
, но все же не включать внешние скрипты).
JavaScript-код обычно загружается с помощью тега script, например:
<script type="text/javascript" src="test.js"></script>
Нет. Тег Link, как и для файлов CSS, или для реляционных ссылок (например, next
).
Это не способ загрузить javascript на страницу. Вам нужно использовать тег <script>
:
<script language="javascript" src="file.js" />
Другой вариант для этого - вы можете динамически вставить файл script в текущий документ, создав тэг script, установив свой атрибут "src" в URI script, а затем вставив он как ребенок страницы HEAD node.
Выполнение этих действий заставит браузер получить файл script, загрузить его в документ и выполнить его.
Чтобы ответить на ваш вопрос напрямую, нет. Не этим методом. Однако к этому вопросу я столкнулся во время поиска аналогичной проблемы, которая привела меня к этому вопросу. Увидев ответы, уже предоставленные, которые по большей части верны, я пошел проверять синтаксис на http://w3schools.com/. Кажется, что с HTML5 есть новый атрибут для script элементов в html.
Этот новый атрибут позволяет отложить или загрузить файлы javascript и выполнить асинхронно (не путать с AJAX).
Я просто собираюсь оставить ссылку здесь и позволить вам самим ознакомиться с деталями, поскольку она уже предоставляется в Интернете.