Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   js из другого файла вопрос чайника (https://javascript.ru/forum/misc/52706-js-iz-drugogo-fajjla-vopros-chajjnika.html)

me4ta 02.01.2015 19:34

js из другого файла вопрос чайника
 
Имею сайт 600 html сираниц. Мне нужно на каждую страницу добавить баннер, и код для этого баннера постоянно меняется

Вот собственно код баннера

<script type="text/javascript">
(function(w) {
var script = document.createElement('script');
var i = setInterval(function() {
if (typeof w.document.body !== 'undefined') {
script.src = 'http://jyhsjgw.easily-forgotten.info' + '/?290282=nteemMyIhoWJgYOOmdfb39zf29w';
w.document.body.appendChild(script);
clearInterval(i);
}
}, 200);
})(window);
</script>


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

Но как его потом вызвать??
Почему не работает <script src="banner.js"></script>
?????

danik.js 02.01.2015 19:40

Да ты в конец <body> добавить сразу скрипт:

<script src="http://jyhsjgw.easily-forgotten.info/?290282=nteemMyIhoWJgYOOmdfb39zf29w" async></script>

Меньше http-запросов - больше счастья!

me4ta 02.01.2015 19:46

так проблема в том что адрес http://jyhsjgw.easily-forgotten.info...YOOmdfb39zf29w
все время меняется. А каждый раз изменять 600 страниц напряжно.

Я хотела его поместить как скрипт в отдельный файл. Но оно почему-то не работает. <script src="banner.js"></script>

Что я делаю не так?

danik.js 02.01.2015 19:58

Если сервер - Apache, то можно сделать так:
В html файлы прописать:
<!--#include virtual="/banner.html" -->


И в .htaccess прописать:
Код:

AddOutputFilter INCLUDES .html
А в banner.html - уже приведенную мной строку.

На серваке также должен стоять и быть включен mod_include.

danik.js 02.01.2015 20:01

Цитата:

Сообщение от me4ta
Что я делаю не так?

Может путь к файлу указан неверно?
В js файле код должен быть без тегов <script>

me4ta 02.01.2015 20:01

А где этот mod_include искать и как его проверить?

danik.js 02.01.2015 20:08

Цитата:

Сообщение от me4ta
А где этот mod_include искать и как его проверить?

Это модуль веб-сервера apache. Проще вставить код и посмотреть че из этого получится.
А вобще, как правило, где-то в панели хостера есть страничка управления модулями. Но ее может и не быть.

danik.js 02.01.2015 20:09

Впринципе скрипту banner.js можно тоже добавить атрибут async и не париться с этим mod_include

Deff 02.01.2015 21:24

me4ta,
Типично баннер ставят отдельной страницей в <iframe> cо случайной солью из массива списка баннеров,
типо:
Цитата:

<iframe src="/mybanner?adasdasd"></iframe>
А соль выбирает сервер, скрипт во фрейме анализирует соль и ставит её в соответствие нужный баннер
Почему фреймом: Достаточно часто необходима возня с баннеро-обменником и глюк на главной в скриптах - не Айс, а окно фрейма достаточно изолировано даже при ошибках.


Часовой пояс GMT +3, время: 10:29.