| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > JavaScript и Perl |
| Автор: Lapochka 12.4.2006, 18:45 | ||
ребят.. такая проблемка.. есть такая вот страничка:
а как сделать так чтобы то что написано на JavaScript работало в Perl? напишите хотя бы примерчик! а если кому-то не сложно то перловский файлик для этой странички. буду благодарна по гроб жизни! |
| Автор: DEER 13.4.2006, 09:01 | ||
| Если страница статическая, то есть не генерируется из БД, то смысл использовать perl скрипт для её генерации теряется... Но если очень нужно, можно написать так
|
| Автор: nitr 13.4.2006, 12:08 |
| жуть... |
| Автор: Lapochka 13.4.2006, 22:53 |
| пасиб.. завтра попробую как встану.. надеюсь заработает ) а если нет ждите весточки!!! |
| Автор: korob2001 14.4.2006, 00:32 | ||
;)))))) На самом деле всё не так уж плохо, спсобов тьма. Если не хочешь отделять разметку от кода, то можно воспользоваться конструкцией "Документ здесь".
В итоге, получаем тот же результат, что и с большим кол-вом perint. Конечно же код html меняй на свой. Так же, можно воспользоваться qq или q, а можно и просто в отедельный файл его вынести, открывать и выводить код из него или хранить в конеце этого же файла после его логического конца. |
| Автор: Lapochka 15.4.2006, 13:25 |
| korob2001 как html вставить я знаю.. с этим нет вообще никаких проблем!!! как сделать чтобы javascript заработал DEER если бы это еще работало |
| Автор: BlackLFL 15.4.2006, 13:27 |
| Perl тут непричем! |
| Автор: Lapochka 15.4.2006, 13:28 |
| BlackLFL не поняла? как это не при чем? если ты не понял.. то мне нужно чтобы страничка, код которой я написала.. полностью работала в перле. т.е. чтобы вместо http://localhost/index.html .. писать в http://localhost/cgi-bin/index.pl (исп. апач) но грузилось чтобы одно и тоже! чтобы и менюшка нормально работала и все остальное тоже! |
| Автор: BlackLFL 15.4.2006, 13:43 | ||
| Я все понял, а Вы боюсь не понимаете различие между Perl и JS. Напишите
и посмотрите результат Добавлено @ 13:45 HTML, JS это текст, и вставляется одинаково ... |
| Автор: korob2001 15.4.2006, 15:07 | ||
Ну а если так попробовать? |
| Автор: Lapochka 15.4.2006, 18:32 |
| я ж говорю.. при помощи обыкновенной вставки в принт нифига не работает. и просто как текст JS не вставить.. потому что работать нифига не будет!! кто не верит. включите апач и посморите! если б так работало я б наверное не писала сюда!!! Добавлено @ 18:43 BlackLFL Перл - на стороне сервера, JS - на стороне клиента! перл не понимает вообще <script>!!!! не понимает!!! и код который ты написал не работает!!! |
| Автор: korob2001 15.4.2006, 21:48 | ||||||
А по твоему тут никто, кроме тебя, апач не включал? ;)))))) Я не первый раз генерирую код JavaScript. Тот код, который я тебе показал, прекрасно работает.
Это и есть ответ на твой вопрос. 1. Клиент отправляет запрос на сервер. 2. Сервер обрабатывает запрос. 3. Если клиент обратился к исполняемому файлу, то сервер запускает запрашиваемое приложение (нашу программу). 4. Та генерирует ему запрашиваемую страницу. 5. Сервер отправляет её клиенту. Заметь, что сначала страница генерируется на сервере ( вместе с кодом JavaScript, который и не должен выполняться на сервере, он не имеет никакого отношения к Perl или к серверу), затем сервер отправляет ответ клиенту, а только после загрузки страницы, браузер анализирует и транслирует код JavaScript или VBScript да и вообще что угодно. Обрати внимание на выделенную часть, она указывает на дистанцию между клиентом и сервером. Вообще Perl не интересует, что он генерирует, лишь бы это не нарушало его правила.
ЗЫ: Кстати, так как твой JavaScript, достаточно большой, почему бы не подумать на тем, что бы вынести его в отдельный файл? Тогда Perl'у нужно будет вообще сгенерировать, только тег <script>. |
| Автор: S.A.P. 15.4.2006, 22:10 |
| Я в перле не силен (случайно сюда зашел images/curs.cur, group.htm, mail.htm и т.д. Естественно, если твой скрипт находится в директории cgi-bin, ниче работать не будет /images/curs.cur, /group.htm, /mail.htm и т.д. |
| Автор: Lapochka 15.4.2006, 23:39 |
| korob2001 мда.. наши преподы мудаки!!! нафиг тогда требовать чтобы в перловском файле работал JS смари. я работаю вот в dreamweaver.. и я там предположим создаю файл JS где описываю все мне необходимые функции.. а как его вызывать эти функции? я просто раньше так никогда не делала.. я с этим работаю тока месяц всего лишь! и в перле тогда как вставлять.. поподробнее плиз! оч буду благодарна |
| Автор: BlackLFL 15.4.2006, 23:58 | ||
| А Perl ненадо понимать <script>, т.к. он отдает текст, и браузер сам уже решать будет, что ему делать с <script>.
Учите мат часть, проверяйте настройки браузера. |
| Автор: nitr 16.4.2006, 00:02 |
| А я чуток оффтопа... это где перл преподают 8) ? Добавлено @ 00:04 Lapochka, какой у тебя браузер? Какую ошибку выдаёт скрипт (если выдаёт)? |
| Автор: korob2001 16.4.2006, 04:35 | ||||||||
Я не знаю, кто у вас там преподы, хотя скорее всего они тут вообще не причём.
1. Создавай js файл. 2. Пиши в него код JavaScript. 3. Сохрани всё это дело. 4. Когда нужно будет подключить файл js, в теге <script> указывай атрибут src, где и указывай путь к твоему файлу js. Например: Файл main.js
Файл home.html
Ложишь оба файла в один каталог и запускаешь файл home.html Теперь Perl'у достаточно знать путь к js файлу и сгенерировать тэг <script></script>, вместо того, что бы генерировать и сам JavaScript, непосредственно в тело генерируемого документа. ЗЫ: Мой тебе совет: До тех пор пока ты не будешь отдавать себе полного отёта в том, что ты делаешь, ПОЛОЖИ ПОДАЛЬШЕ СВОЙ Dreamweaver, а потом ты и сама не захочешь им пользоваться. Но это так, совет. Ты можешь его послушать, а можешь и просто пропустить мимо ушей. ;)))))) |
| Автор: shootnix 16.4.2006, 09:09 | ||
Мдя, насчёт вставки JavaScript есть масса способов. Вот, к примеру, такой (здесь не обсуждалси):
|
| Автор: Paranoiamoto 16.4.2006, 19:12 | ||
| nitr, Perl нам преподают в МАИ (Московский Авиационный Университет) Самый простой способ:
Лапочка, Вместо qq||; пишем q%%; и все работает!;) Perl может натыкаться на знакомые ему |, например, в коде Java....поэтому у тебя и появляются ошибки. Поставь себе что-нибудь типа GridinSoft Notepad - там все замечательно видно! |
| Автор: nitr 16.4.2006, 19:24 | ||
поправим код
т.к. ты можешь использовать проценты в коде ява-скрипта А выше http://forum.vingrad.ru/index.php?showtopic=91598&view=findpost&p=704304! Никто конечно не заставляет... но всё же лучше хранить хтмл-код отдельно от перл-кода |
| Автор: BlackLFL 16.4.2006, 20:40 | ||
невсегда приемлимо, т.к. нельзя пользоваться табуляцией
выдаст ошибку Can't find string terminator "END_JS" anywhere before EOF ... |
| Автор: nitr 16.4.2006, 20:53 |
| BlackLFL, не в этом ошибка Это уже не по теме обсуждение, тем более я указал, что лучше в файлах хранить, а вот с "%" согласись Тем более табуляцию не используют |
| Автор: korob2001 17.4.2006, 07:26 | ||||||||||||
Почему нельзя? Если тебе нужно, что бы табуляция была в JavaScript, то достаточно лишь отключить интерполяцию. Например ставить два обратных слеша \\t, тогда Perl пропустит это, а JavaScript будет транслировать это как табуляцию. Можно так же отключить интерполяцию одинарными кавычками в начале, документа ТУТА
Здесь табуляцию и перевод строки делает не Perl, а JavaScript. Если ты имел ввиду то, что "Документ Здесь" должен всегда начинаться с начала строки, то обойти это можно довольно просто, вот тот же код, но "Документ Здесь" начинается с отступом:
Просто нужно в конце документа поставить такое же кол-во пробелов или табуляций, сколь ты сделал в его начале. Вот здесь:
Для "Документа Здесь", применимы все те же правила, что и для строк. Например вот так можно выплнить системную комаду, с использованием "Документа здесь":
А вот пример того, как создать воложенные "документы ЗДЕСЬ":
Заметь, что интерполяция отключена в теле этого "Документа здесь", до тех пор, пока не закончится вложенный документ. А вот пример того, как заполнить хеш из строк "документа здесь":
|
| Автор: BlackLFL 17.4.2006, 09:24 |
| korob2001, спасибо, ты убрал пробел в моих знаниях! ( получай плюс |
| Автор: Nasok 8.6.2006, 07:17 |
| Пардон, у меня тоже вопрос касательно работы Перла и Яваскрипта. Наверное не совсем сюда, просто незнал куда точно писать. Суть в следующем, Есть движек на перле ... и соответственно енекоторые функции на яваскрипте ... в своё время он был адаптирован под эксплоер .. и сейчас Мозила (к примеру) его не понимает. Может есть какие нить советы по опитимизации сайта под мозиллу ...не исключая эксплоера конечно. Я гвоорил с людьми мне сказали что это с Явой. Вот обращаюсь к вам. ЗАранее благодарен. ..а да и ссылка про то, о чём речь. www.rhhz.ru/cgi-bin/chat/frame.pl - это Чат. Под эксплоером отлично работает ..(под мозиллой не хочет.) :( |
| Автор: korob2001 8.6.2006, 08:11 | ||||
Там помоему у тебя проблемы не с JavaScript и Perl, а самой разметкой в правом фрейме. Посмотри исходник HTML, правого фрейма, например вот эта часть кода:
Это последние строки правого фрейма. У тебя начинается ячейка таблицы и в ней же начинается новый документ
Что за тэг </shtml>? Судя по всему SSI включение или просто CGI приложение генерирует не то, что нужно или же не там где нужно. IE просто такие вещи глотает пытаясь сам исправить все твои ошибки, FF этого не делает, точнее делает, но не с таким успехом. |
| Автор: Nasok 8.6.2006, 08:26 |
| Спасибо, ну вот с тем что накладывается я разберусь, там просто действительно так сделано что на странице с атрибутом хайден сделано несколько вещей ... и просто при нажатии определённой ссылки (в верхней части Чата) в правом фрэйме включается определённая (спрятанная ранее) информация ... как то список тех кто в чате, какие "тусы" итд ... с тем что это накладывается друг на друга .. я разберусь . .я. не совсем понимаю ... почему сам чат не запускается . .под эксплоером ... если видел .. там так же грузится и после загрузки запускается и всё окай .. а тут он даже грузить окно не хочет ... или у него последовательно ..пока не загрузит правый не будет центральный ? ... помойму врятли. Если есть время - посоветуй что нибудь .. могу выслать на емаил или по асе код яваскрипта ... который запускает барабан чата. просто он довольно большой : ) Чат у нас давно существует ... и просто вот только ща я отошёл от работы немного и решил его оптимизировать и под фаир фокс ...итд : ) Заранее благодарен. |
| Автор: afork 8.6.2006, 16:27 |
| Интересный момент ... у тебя js запускает main window .... ? Если пришлешь скрипт на _webwork_@mail.ru ... погляжу ... |