Могу ли я загрузить код JavaScript с помощью тега <link>? - PullRequest
27 голосов
/ 13 апреля 2010

Могу ли я загрузить код JavaScript с помощью тега <link> на моем веб-сайте?

Например, у меня есть файл JavaScript, test.js, который содержит простой код alert('hello');

Можно ли заставить всплывающее окно появляться с помощью:

<link href="test.js"></link>

Ответы [ 8 ]

37 голосов
/ 13 апреля 2010

Нет. Было предложение разрешить:

<link rel="script" href=".../script.js"/>

аналогично таблицам стилей. Это даже цитируется в качестве примера в HTML 4 DTD , но реализация браузера никогда не происходила. Позор, так как это было бы намного чище.

13 голосов
/ 13 апреля 2010

Вам необходимо использовать тег <script> для включения исходных файлов JavaScript:

<script type="text/javascript" src="mysrc.js"></script>

Конечный тег должен быть полным </script>, не сокращайте, как вы можете с некоторыми тегами, как в <script type="text/javascript" src="..."/>.

Да, операторы оповещений во включенном источнике появятся, когда они будут проверены браузером.

Информацию об использовании тега <link> см. w3.org .

4 голосов
/ 17 августа 2018

Современные браузеры поддерживают ключевое слово preload, которое используется для предварительной загрузки различных ресурсов, включая скрипты. От MDN :

Значение preload атрибута rel элемента <link> позволяет вам написать декларативные запросы на выборку в вашем HTML <head>, указав ресурсы, которые понадобятся вашим страницам очень скоро после загрузки, которые вы поэтому хочу начать предварительную загрузку в начале жизненного цикла страницы загрузить, прежде чем основной механизм рендеринга браузера сработает. Это гарантирует, что они будут доступны раньше и с меньшей вероятностью заблокировать первый рендеринг страницы, что приведет к повышению производительности.

Простой пример может выглядеть следующим образом (см. Наш пример JS и CSS источник , а также live ):

<head>
  <meta charset="utf-8">
  <title>JS and CSS preload example</title>

  <link rel="preload" href="style.css" as="style">
  <link rel="preload" href="main.js" as="script">

  <link rel="stylesheet" href="style.css">
</head>

<body>
  <h1>bouncing balls</h1>
  <canvas></canvas>

  <script src="main.js"></script>
</body>
4 голосов

Возможное обоснование, почему нет

Поэтому естественно иметь отдельный элемент для JavaScript, и поскольку у нас должен быть отдельный элемент, лучше не дублировать функциональность с link rel="script".

Эта теория также объясняет, почему img и style имеют отдельные элементы:

  • img может быть помещен в тело, поэтому он получает отдельный элемент, хотя он должен быть пустым.

  • style может быть непустым, поэтому он получает отдельный элемент, хотя до HTML5 его нельзя было поместить в body (теперь он может через scoped, но все равно не включать внешние скрипты).

1 голос
/ 02 июля 2014

Чтобы ответить на ваш вопрос напрямую, нет. Не этим методом. Однако я столкнулся с этим вопросом при поиске аналогичной проблемы, которая привела меня к этому вопросу. Увидев уже предоставленные ответы, которые по большей части верны, я пошел проверять синтаксис на http://w3schools.com/. Похоже, что в HTML5 появился новый атрибут для элементов скрипта в html.

Этот новый атрибут позволяет обрабатывать или загружать файлы javascript и выполнять их асинхронно (не путать с AJAX).

Я просто оставлю здесь ссылку и позволю вам самостоятельно прочитать подробности, так как она уже есть в Интернете.

http://www.w3schools.com/tags/att_script_async.asp

1 голос
/ 22 апреля 2011

Другой вариант для этого заключается в том, что вы можете динамически вставить файл сценария в текущий документ, создав тег SCRIPT, установив его атрибут «src» для URI сценария, а затем вставив его в качестве дочернего элемента узел HEAD страницы.

В результате этих действий браузер получит файл сценария, загрузит его в документ и выполнит его.

1 голос
/ 13 апреля 2010

Нет. Тэг Link, как и для CSS-файлов или для реляционных ссылок (например, next).

Это не способ загрузки JavaScript на страницу. Вам необходимо использовать тег <script>:

<script language="javascript" src="file.js" />
1 голос
/ 13 апреля 2010

Код JavaScript обычно загружается с использованием тега скрипта, например:

<script type="text/javascript" src="test.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...