Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Вынос содержания меню (скрипта) во внешний файл


Автор: ChaiNick 10.6.2005, 01:16
Уважаемые дамы и господа! Код меню находится в основном файле. Как вынести содержание меню или весь код в отдельный файл? Например, это простенькое меню - http://www.unitravel.ru/4.html Что-то у меня не получается.

С уважением к мастерам,
Естессно, ЧайНик

Автор: Black 10.6.2005, 01:26
1) Создаем файл js.js (можно и другое имя)
2) Вписываем в файл все что находится в

Код

<script language="JavaScript">
<!-- 
копируем все это что тут между <!-- // -->
// -->
</script>


3) Сохраняем файл.
4) Открываем HTML-страницу и пишем:

Код

<script type="text/javascript" srс='путь_к_файлу_js.js' ></script>


5) ВсЁ

Автор: ChaiNick 10.6.2005, 01:44
Спасибо за ответ! Следовал вашим инструкциям. Однако безрезультатно, увы smile

Автор: sergejzr 10.6.2005, 01:56
Бесплатный хостинг?

Автор: ChaiNick 10.6.2005, 02:13
Пока без хостинга. Пробую на своем компе. А образец меню вынес на платный хостинг с поддержкой веба

Автор: sergejzr 10.6.2005, 02:43
путь к файлу можно посмотреть?
http:// обязательно писать!

Автор: Sardar 10.6.2005, 03:19
Цитата(sergej @ 10.6.2005, 01:43)
http:// обязательно писать!

Нет не обязательно.

ChaiNick какую ошибку говорит браузер? Почти уверен что скрипт бьётся когда ты его вырезаешь, браузер ругаеться на синтаксические ошибки.

Автор: ChaiNick 10.6.2005, 03:48
Путь к файлу <script type="text/javascript" srс='js.js' ></script> Файл лежит в том же каталоге.

В сам файл вставил весь скрипт и все содержание меню, как советовал PHP-DIRECTOR.

Вот его совет:

Код

<script language="JavaScript">
<!-- 
копируем все это что тут между <!-- // -->
// -->
</script>




Плюс пробовал по-всякому.... smile


Ой, забыл ответить уважаемому Sardar.

В статусной строке браузера вообще молчание.

Ну а в окне документа исчезли клавиши меню - http://www.unitravel.ru/4.html

М
 
Пользуемся форумой подсветкой

Автор: sergejzr 10.6.2005, 09:59
В этом файле, насколько я вижу, нет инклуда совсем.

Цитата(Sardar @ 10.6.2005, 02:19)
Цитата (sergej.z @ 10.6.2005, 01:43)
http:// обязательно писать!

Нет не обязательно.


Цитата(ChaiNick @ 10.6.2005, 01:13)
Пробую на своем компе. А образец меню вынес на платный хостинг с поддержкой веба


Иногда пишут для скриптов с другого домена:

Код

<script type="text/javascript" srс='www.где_то/мой_скрипт.js' ></script>


В таком случае обязательно http://

Код

<script type="text/javascript" srс='http://www.где_то/мой_скрипт.js' ></script>

Автор: ChaiNick 10.6.2005, 10:31
Спасибо! Однако если я напишу Http://, я ничего не получу на своем компе, не подключенном к Сети

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

Главное, что никак не получается вынести СОДЕРЖАНИЕ меню в отдельный файл. Гляньте, плииз, на страничку http://www.unitravel.ru/4.html В этом файлике очень коротенький скрипет и не очень длинное содержание, местонахождение которого на странице определяется тегами <div></div>


Автор: Ciber SLasH 10.6.2005, 11:54
Цитата(ChaiNick @ 10.6.2005, 04:48)
Путь к файлу <script type="text/javascript" srс='js.js' ></script> Файл лежит в том же каталоге.

Попробуй путь к скрипту указать так: ./my.js
У меня вот тут тоже страница на бесплатном хостинге, но скрипт присоединённый отлично работает: http://ciber-slash.hotbox.ru/index.htm

Автор: ChaiNick 10.6.2005, 13:05
Спасибо! Пробовал - работает одинаково - и так рабоатет и так тоже работает. Но только наполовину. Будучи спрятанным в другом файле, скрипт выводит все же начальную кнопку меню как надо. А вот дальше, при нажатии на нее браузер кричит, что ошибка, предполагается наличие объекта.

Вот в этой строке:

Код

<div style="position:absolute; top:100; left:5;  visibility:visible; Z-INDEX:30">
<form><input type="button" value="Показать меню" onclick="vis();"></form>
</div>


Однако и не в этом во всем собака зарыта! Пусть бы скрипт и находился в основном файле, раз там он не глючит. Главное для меня убрать во внешний файл СОДЕРЖАНИЕ меню. То бишь вот эту часть:

Код

<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>


Может быть, кто знает, как это сделать smile

М
 

Пользуемся форумной подсветкой!

Автор: Black 10.6.2005, 13:40
Цитата
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>


это можно убрать через JavaScript, который потом впишет этот код в id

Например:

Код

<div id='links'>

<a href="#">SSSSSSSS</a>
<a href="#">SSSSSSSS</a>

</div>



Код

document.getElementById('links').innerHTML += "<a href='#'>SSSSSSSS</a><a href='#'>SSSSSSSS</a><a href='#'>SSSSSSSS</a>";

Автор: ChaiNick 10.6.2005, 15:07
Спасибо!!!

Сделал, как сказали. Не пашет!

Видимо, это дохлая затея smile

Автор: ChaiNick 10.6.2005, 15:22
На всякий случай. Правильно ли я вас понял уважаемый PHP-DIRECTOR ?

Я оставил в JS-файле только вот это содержание (содерждание меню):

Код

<script language="JavaScript">
<!-- 

document.getElementById ('links').innerHTML += "
<a href='#'>SSSSSSSS</a>
<a href='#'>SSSSSSSS</a>
<a href='#'>9999999999</a>"

// -->
</script>



Весь скрипт обратно поместил в основной файл. Ждя меня главное - Содержание.

В Основном файле поставил толко вот это:

Код

<div id='links'></div>


Так я вас понял?


Но пока не работает smile

М
 

Пользуемся форумной подсветкой!

Автор: Guest 10.6.2005, 15:23
Цитата(ChaiNick @ 10.6.2005, 13:05)
Вот в этой строке:

<div style="position:absolute; top:100; left:5; visibility:visible; Z-INDEX:30">
<form><input type="button" value="Показать меню" onclick="vis();"></form>
</div>

Вот по этой строке ничего сказать не возможно, т.к. мы не видим код функции "vis()".
И вообще кинь весь JS-код сюда, иначе понять на чём спотыкается браузер отвечающим не имеется возможности (сквозь стены не видим)...

Автор: Black 10.6.2005, 15:58
Вот так:

Код

<html>
<head>
<title>Пример</title>

<script type="text/javascript">
<!--
function html()
{
document.getElementById ('links').innerHTML += "<a href='#'>SSSSSSSS</a><br><a href='#'>SSSSSSSS</a><br><a href='#'>9999999999</a>"
}
// -->
</script>

</head>

<body onload='html()'>

<div id='links'></div>

</body>
</html>



Если делать скрипт в другом файле тогда так:

Код

<html>
<head>
<title>Пример</title>

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

<body onload='html()'>

<div id='links'></div>

</body>
</html>


Создаем файл js.js и ложим его в ту папку где положили основной файл ваше_имя.html

В файле js.js пишем:

Код

function html()
{
document.getElementById ('links').innerHTML += "<a href='#'>SSSSSSSS</a><br><a href='#'>SSSSSSSS</a><br><a href='#'>9999999999</a>"
}


Вот так думаю понятно smile

Примечание:
Код

document.getElementById ('links').innerHTML += "все что тут надо писать в одну строку никаких enter";

Автор: Aliance 10.6.2005, 17:19
ChaiNick
Пользуйся форумной подсветкой!

Автор: Sardar 10.6.2005, 18:05
Ну блин насоветовали... smile


В последнем посте PHP-DIRECTOR ответил правильно:
  • код JS пишем без тегов <script> в текстовый файл, даём ему (любое) расширение .js
  • на странице куда подключаем скрипт пишем <script type="text/javascript" src="путь до файла"> При этом лучше не указывать http:// , так как глючные браузеры могут не сохранить скрипт при сохраненнии страницы, за что юзер будет не доволен.
  • Содержимое срипта должно быть валидным JS, а строки в JS переносить нельзя(из-за того что ; опционален). Все переводы строк либо заменяем на \n либо ставим \ перед переводом строки.
Встречный вопрос: у тебя в .js похоже не код, а готовая разметка лежит, зачем это нужно, кешируем? Лучше генери разметку у клиента, а в скрипте храни только не обходимое(текст, URL, стили).
Код
var data=[
 ["ssssss 1", "#"],
 ["ssssss 2", "#"]
//...
];

В самой странице уже генеришь:
Код
for(var i=0; i<data.length; i++) {
  src+="<a href='"+data[i][1]+"' class='link'>"+data[i][0]+"</a><br>\n";
}
document.getElementById("link_container").innerHTML=src;

Автор: ChaiNick 11.6.2005, 04:10
И вообще кинь весь JS-код сюда, иначе понять на чём спотыкается браузер отвечающим не имеется возможности (сквозь стены не видим)...

Кидаю:
Код

<script language="JavaScript">

<!-- 

function vis() {
if (navigator.appName == "Netscape")
{ document.lo.visibility = 'show' }
else { document.all.lo.style.visibility='visible'  }
}


function hid() {
if (navigator.appName == "Netscape")
{ document.lo.visibility = 'hide'}
else { document.all.lo.style.visibility= 'hidden' }
}

// -->
</script>


Все остальное на маленькой страничке - http://www.unitravel.ru/4.html

Там же все видно smile


 ! 
 
Уважаемый, мне уже надоело исправлять ваши оплошности. Пользуйтесь предварительным просмотром!

Автор: ChaiNick 11.6.2005, 04:31
Спасибо! Так все работает. Но все работало и в старом варианте. Здесь же принципиально ничего не изменилось - Все содержание меню по-прежнему сидит в старом файле. В вашем коде я не вижу обращения к внешнему файлу, в котором будет лежать содержание меню

Да, я совершил огшибку - написал содержание меню в несколько строчек. Сейчас я вытяул все в одну строку. Но ничего не получается опять. Вот содержание файла JS:

Код

<script language="JavaScript">

<!-- 

function html()
{
document.getElementById ('links').innerHTML += "<a href='#'>SSSSSSSS</a><br><a href='#'>SSSSSSSS</a><br><a href='#'>9999999999</a>"
}


// -->
</script>


В тело основного файла вставил

Код

<body onload='html()'>


и в нужное место:

Код

<div id='links'></div>



 ! 
 

Прочти правила форума!

Автор: ChaiNick 11.6.2005, 04:43
СЕРДЕЧНОЕ СПАСИБО, SARDAR!

Я с дуру в JS файл воткнул
Код

<script language="JavaScript">
<!-- 
// -->
</script>

как советовали профессора. Сомневался, правда, немного...

Убрал - заработало.

Отвечаю на ваш вопрос: Дело в том, что хостинг без поддрежки веба, без Апача и всего прочего. Поэтому такой примитивный вариант.

Еще раз ВСЕМ (особенно PHP-Директору) ОГРОМНОЕ спасибо!

Аркадий Логвинчук
Пока ЧайНик
http://home.kht.ru/expo/ff.htm

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)