Запустить JavaScript внутри тегов <script src = "..."> </ script>?
8472 просмотра
5 ответа
У меня есть файл JavaScript, который обрабатывает вкладки переключателей. Вот источник:
var tCount = 0;
function SwitchToTab(id) {
if (id < 0 || id > tCount) { id = 0; }
for (var i = 0; i < tCount; i++) { document.getElementById("tab" + i).className = ""; }
document.getElementById("tab" + id).className = "active";
for (var i = 0; i < tCount; i++) { document.getElementById("area" + i).style.display = "none"; }
document.getElementById("area" + id).style.display = "";
}
function InitializeTabs(initialTabId, tabsCount) {
tCount = tabsCount;
SwitchToTab(initialTabId);
}
Я пытаюсь сделать это как можно короче, вот так:
<script src="Resources/Tabs.js">InitializeTabs(0, 4);</script>
Это не работает, но работает, если я разделяю их так:
<script src="Resources/Tabs.js"></script>
<script>InitializeTabs(0, 4);</script>
Итак, есть ли способ запустить JavaScript внутри <script src="..."></script>
тегов? Чего мне не хватает?
Ответы (5)
8 плюса
Нет, это невозможно. Спецификация html диктует, что <script>
тег делает один или другой.
W3 школы , акцент мой.
Элемент либо содержит операторы сценариев, либо указывает на внешний файл сценария через атрибут src.
Примечание: если присутствует атрибут "src", элемент должен быть пустым.
<script>
Тэг Html Spec , акцент мой.
Автор: DLeh Размещён: 02.04.2015 01:24Сценарий может быть определен в содержимом элемента SCRIPT или во внешнем файле. Если атрибут src не установлен, пользовательские агенты должны интерпретировать содержимое элемента как сценарий. Если src имеет значение URI, пользовательские агенты должны игнорировать содержимое элемента и извлекать сценарий через URI.
0 плюса
Вы можете использовать src
или поместить JavaScript внутри тега.
Но не оба сразу. В любом случае, нет никаких недостатков в использовании двух тегов (кроме большого размера файла).
Автор: MightyPork Размещён: 02.04.2015 01:230 плюса
Вы должны сделать это вторым способом. если <script src="Resources/Tabs.js">InitializeTabs(0, 4);</script>
вы ссылаетесь на внешний файл javascript, ваш встроенный код должен перейти во второй блок сценария.
0 плюса
Когда вы включаете <script src="Resources/Tabs.js"></script>
, вы упоминаете, что хотите использовать Javascript, который включен в Tabs.js
файл, чтобы компилятор знал, где искать InitializeTabs
функцию, когда он пытается выполнить функцию.
Теперь, если вы хотите включить встроенный Javascript, который находится внутри HTML, тогда вы используете <script>... JAVASCRIPT HERE .... </script>
Вы должны сделать это так
<script src="Resources/Tabs.js"></script>
<script>InitializeTabs(0, 4);</script>
Автор: Saagar Elias Jacky
Размещён: 02.04.2015 01:27
0 плюса
Вы не можете поместить javascript в <script src="...
теги, но вы можете запустить файл JavaScript, который анализирует HTML, ищет <script src
теги, которые преобразуют его в два тега.
Например,
<script src="Resources/Tabs.js">InitializeTabs(0, 4);</script>
должен быть преобразован в
<script src="Resources/Tabs.js"></script>
<script>InitializeTabs(0, 4);</script>
Вот код, который я попробовал:
var tags = document.querySelectorAll("script[src]");
[].forEach.call(tags, function(elem){
var text = elem.innerText;
var src = elem.src;
var parent = elem.parentNode;
parent.removeChild(elem);
var newTag = document.createElement('script');
newTag.setAttribute('src', src);
parent.appendChild(newTag);
var newTag = document.createElement('script');
var t = document.createTextNode(text);
newTag.appendChild(t);
parent.appendChild(newTag);
});
Автор: theonlygusti
Размещён: 02.04.2015 01:49
Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- javascript Как автоматически изменить размер текстовой области с помощью Prototype?
- javascript Удаление элементов с помощью Array.map в JavaScript
- javascript Прокрутка переполненных DIV с помощью JavaScript
- javascript API Карт Google - проблемы с классом GLatLngBounds
- javascript Проверка десятичных чисел в JavaScript - IsNumeric ()
- html Определить часовой пояс пользователя
- html Как мне дать моим веб-сайтам значок для iPhone?
- html Как отключить автозаполнение браузера в поле веб-формы / теге ввода?
- html Как вы можете настроить номера в упорядоченном списке?
- html Как поместить пробел перед текстом опции в элементе выбора HTML?
- html Есть ли HTML напротив <noscript>?
- html Как я могу найти неиспользуемые изображения и стили CSS на веб-сайте?