На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> как загнать весь файл в переменную? , на JavaSript-e. хелп новичку...
    Есть форма добавления сообщения, надо сделать предпросмотр. Хочу сделать так, чтобы при нажатии на кнопку открывалось еще одно окно, где был бы виден результат. Притом есть готовый шаблон этой страницы, в котором в нужных местах вставлены условные переменные. Типа:
    ExpandedWrap disabled
      ....
      Адрес: [MyAdres]
      ....

    Так вот надо эти переменные заменить на значения взятые из формы. Как произвести замену? Есть такая мысль, что надо весть файл загнать в переменную типа string, а там произвести replace("[MyAdres]", document.form.text.value). А вот как загнать все в одну переменную? И как в таком случае открыть файл? Ведь если использовать document.open() то он отобразиться сразу, а мне надо после преобразования...

    Да, кстати, надо чтобы это все поддерживалось на разных браузерах!
    Сообщение отредактировано: voody -
      наверное стоит не на javascript делать - а на server-side скрипте(вот как например на этом форуме сделано)
      можешь на asp попробывать - там синтаксис javascript'овский - легче освоиться будет, если ты серверными скриптами еще не занимался.
        Ну мне тогда на пхп проще... Просто хотелось чтоб страница не перегружалась... А че на ЯваСкрипте никак?
          почему же никак?
          можно так:
          win=window.open(...);
          win.innerHTML=...
          то есть к примеру:
          у тебя есть поле для ввода ника (<input type=text id=nickname>)
          после нажатия на кнопку "предпросмотр" выполняется какаянить функция которая создаёт новое окно и заполняет его (<input type=button onClick="preview();">). осталось только написать функцию...
          например:
          ExpandedWrap disabled
             
            function preview()
            {
            win=window.open(...);
            win.innerHTML='Ник: '+document.all[nickname'].value;
            }

          по сути дела функция preview должна содержать весь твой шаблон о котором ты говорил, нужно только в нужных местах подставлять соответствующие значения...
          на счёт кроссбраузерности это не ко мне... я этим не занимаюсь - у меня свои предубеждения...

          2shipbrother:
          не javascript'овский а vbscript'овский
            Цитата
            не javascript'овский а vbscript'овский
            ну это смотря с какой стороны посмотреть
            ExpandedWrap disabled
              <%@LANGUAGE = JavaScript%>
            и называют это дело - программированием серверных сценариев на языке JavaScript в окружении ASP
            а по умолчанию действительно vbscript - это я согласен :)
            Сообщение отредактировано: shipbrother -
              To seelts:
              Задумка понятна, спасибо, но немного не то, что мне нужно... Ты предлагаешь, чтобы я весь свой шаблон засунул в эту функцию, но у меня этот шаблон лежит отдельным файлом, и кроме того он используется в других местах. Должно получиться примерно так: я беру этот файл-шаблон, ищу в нем условные переменные и заменяю их на нужные значения. Если вдруг через пару недель дизайнер принесет новый шаблон или что-то изменит в этом, то я беру только один этот файл и заменяю только его, не меняя ни строчки кода.

              Можно ли на JavaScript'e открыть файл, присвоить все его содержимое какой-либо переменной типа string, преобразовать ее нужным образом, а затем уже вывести в отдельном окне?
              В php есть такая функция file(), так вот мне нужен ее аналог...
                попробуй так:
                сначала открываешь окно:
                n=window.open(template,"go","left=0, top=0, width=screen.width, height=screen.height, scrollbars=yes, resizeable=yes");

                потом получаешь его содержимое (это содержимое между <body> и </body> поэтому эти теги должны присутствовать):
                tempbody=n.document.body.innerHTML;

                теперь у тебя в tempbody - твой шаблон в котором ты ищешь "условные переменные", заменяешь их реальными значениями и:
                n.document.body.innerHTML=newbody;

                думаю должно получиться то что тебе надо.
                Удачи.
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0525 ]   [ 15 queries used ]   [ Generated: 28.04.24, 06:55 GMT ]