Загрузка активов в элементе noscript
Я ожидаю, что стандартное поведение будет не загружать какие-либо активы в <noscript>
элемент, и быстрый беглый тест в FF и Chrome доказывает, что это так. Тем не менее, есть ли ситуации, когда активы (например, изображение) в <noscript>
элемент, будет загружен, когда сценарии включены?
2 ответа
Согласно спецификации W3:
Элемент NOSCRIPT позволяет авторам предоставлять альтернативный контент, когда скрипт не выполняется. Содержимое элемента NOSCRIPT должно обрабатываться только пользовательским агентом с поддержкой сценариев в следующих случаях: Пользовательский агент настроен не оценивать сценарии. Пользовательский агент не поддерживает язык сценариев, вызываемый элементом SCRIPT ранее в документе. Пользовательские агенты, которые не поддерживают клиентские сценарии, должны отображать содержимое этого элемента.
Так что, я думаю, как доказали ваши тесты: элементы внутри <noscript>
раздел не будет отображаться (то есть загружаться) вообще, когда клиент поддерживает <script>
элементы.
Я также только что проверил это на моей странице, которая использует изображение внутри <noscript>
частично, и ни Chrome, ни FF, ни Opera, ни IE не проявили никакого интереса к загрузке изображения.
Я думаю, это зависит от того, что вы имеете в виду. Возьми эту разметку:
<!DOCTYPE html>
<html>
<head>
<title>Test Case</title>
</head>
<body>
<noscript id="ns">
</noscript>
<script>
var ns = document.getElementById("ns");
ns.innerHTML = "</noscript><img src='http://www.alohci.net/dummy'>";
</script>
</body>
</html>
В Firefox это приведет к <img>
элемент внутри <noscript>
элемент и изображение, на которое ссылаются, выбирается с сервера.
Заметки:
1. Я понятия не имею, почему это происходит.
2. Только Firefox, кажется, делает это.
3. Я не могу представить себе какую-либо пользу для этого.