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


Автор: k!ndr 24.7.2005, 22:47
тамплэйты на сайте обрабатываются с помощью класса Template библиотеки PHPLib.
вся информативная часть находится в базе данных.
мне необходимо доставать инфу из базы, загонять ее в объект класса FCKeditor.

Для этого на тестовой страничке я делал так, как написано в мане:
Код

<html>
  <head>
    <script type="text/javascript" src="/FCKeditor/fckeditor.js"></script>
    <script type="text/javascript">
      window.onload = function()
      {
        var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;
        oFCKeditor.ReplaceTextarea() ;
      }
    </script>
  </head>
  <body>
    <textarea id="MyTextarea" name="MyTextarea">This is <b>the</b> initial value.</textarea>
  </body>
</html>

результат положительный!

но при использовании тамплэйтов я делаю так:
    файл - тамплэйт:
    Код

    <head>

       <script type="text/javascript" src="/FCKeditor/fckeditor.js"></script>

        <script type="text/javascript">
          window.onload = function()
          {
            var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;
            oFCKeditor.ReplaceTextarea() ;
          }
        </script>

    </head>

    <!-- BEGIN show_big -->
    <div>
            <ul>
                    <!-- BEGIN content_block -->
                    <li><a href="{content_link}" class="redLinkA">{content_descr}</a></li>
                    <!-- END content_block -->
            </ul>
    </div>
    <!-- BEGIN const_info -->

    <form action="save.php" method = POST>
    <textarea id="MyTextarea" name="Text">This is <b>the</b> initial value.</textarea>
    <input type="submit">
    </form>

    <!-- END const_info -->
    <!-- END show_big -->

обработчик тамплэйта:
Код

        start("template.tpl");
        $t->cut_block("BODY", "show_big", "m_action");
        $t->set_var("m_action", "");
        $t->set_block("show_big", "const_info", "m_info");
        $t->set_block("show_big", "content_block", "m_content_block");
        $t->set_var("m_info", "");
        $t->set_var("m_content_block", "");
        (...)
        $t->parse("m_info", "const_info", true);
        $t->parse("m_action", "show_big");                      

        stop();

и результат отрицательный!!! smile
получается, что выводится только textarea! т.е. получается, что объект oFCKeditor не создается! smile

подскажите, где нужно объявить новый объект?
я так понимаю, что при использовании тамплэйтов функция window.onload не работает? может есть доугое событие?

Помогите разобраться пожалуйста! smile

Автор: Mal Hack 24.7.2005, 22:54
А при чем тут PHP??

Автор: k!ndr 24.7.2005, 22:57
при том, что обработчик тамплэйтов - PHPLib.
а точно в чем проблема я не знаю... может я не до конца разобрался в том, как работать с тамплэйтами...

Автор: Mal Hack 24.7.2005, 23:30
Ты через JavaScript пытаешься выполнить PHP код.
О какой работе скрипты вообще может идти речь?

Автор: k!ndr 24.7.2005, 23:49
хм... не понял...
я, с помощью php, разбиваю тамплэйтный файлик (в котором JavaScript) на кусочки, а потом вывожу нужные кусочки... и JavaScript не выполняестя, а не php

Автор: Mal Hack 25.7.2005, 01:40
Цитата(k @ 25.7.2005, 00:49)
и JavaScript не выполняестя, а не php

Опять же, при чем тут PHP.

Ты сгенерировал страницу, на которой JS код. Правильно? И этот код - не выполняется. Так?

Автор: k!ndr 25.7.2005, 09:17
Цитата
Ты сгенерировал страницу, на которой JS код. Правильно? И этот код - не выполняется. Так?


да, но не выполняется он из-за того, что php каким-то образом не дает ему выполниться, наверное.
на страничке без php все работает.

Автор: Mal Hack 25.7.2005, 11:44
k!ndr значит ты не правильно сгенерировал JS код или его вызов ченрез PHP. Но PHP тут не при чем.
Добавлено @ 11:45
А не выполняется т.к. поле name у текстареа - разные.
Перенемено в JavaScript.

Автор: Sardar 25.7.2005, 16:43
k!ndr name тут не при чём, просто поставь своё:

Код
    <script type="text/javascript">
        var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;
        oFCKeditor.ReplaceTextarea() ;
    </script>

после тега textarea.

Автор: k!ndr 26.7.2005, 01:50
Sardar, не помогло smile
но скажи, почему так могло сработать?

Автор: Sardar 26.7.2005, 01:56
Потому что твой FCKeditor вытаскивает textarea по идентификатору в конструкторе. Естественно элемент должен существовать на момент исполнения. Обычно подобные инициализации ставят на onload, тогда страница загруженна и все элементы существуют, либо код помещают после кода требуемого элемента.

Очень странно, какие ошибки в консоли? Посмотри сорец страницы что браузер получает, запости здесь.

Автор: k!ndr 26.7.2005, 02:32
ну это и получаю...
Код

<form action="save.php" method = POST>
<textarea id="MyTextarea" name="MyTextarea">This is <b>the</b> initial value.</textarea>
<input type="submit">
</form>

<script type="text/javascript" src="/FCKeditor/fckeditor.js">
       var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;
       oFCKeditor.ReplaceTextarea() ;
</script>


пробовал и onload, не выходит...
тут, кажется проблема не в самом коде, но я не знаю в чем может быть

Автор: Sardar 26.7.2005, 02:36
А браузер что говорит? В консоль посмотри если ты под мозиллой.

Глупый вопрос но всё же, ты не забыл код самого эдитора подключить на страницу? smile

Автор: k!ndr 26.7.2005, 17:16
Error: syntax error
Source File: http://kindr/const/FCKeditor/fckeditor.js
Line: 1
Source Code:
<br />

это все smile

Автор: Sardar 26.7.2005, 18:50
Значит в исходнике едитора синтаксическая ошибка, скорее всего либо сервак 4хх/5хх ошибку выдаёт, либо JS скрипт ты генеришь на сервере, а там у тебя синтаксическая ошибка в PHP. Просто открой ссылку с скиптом сам, и убедись.

Автор: k!ndr 28.7.2005, 03:32
спасибо, Sardar! smile
натолкнул ты меня на ошибку!
проблема была в .htaccess, который выдавал страничку ошибки, вместо скрипта эдитора.

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