JQuery + InnovaStudio WYSIWYG редактор - PullRequest
0 голосов
/ 20 апреля 2010

Я пытаюсь избежать жесткого кодирования каждого экземпляра этого редактора WYSIWYG, поэтому я использую jQuery для создания цикла each () на основе имени функции. Досадно, что InnovaStudio взрывается, когда я пытаюсь.

Документация

Попытка # 1

<script type="text/javascript">

            /*
            id = $(this).attr('id');
            if(id.length == 0)
            {
                id = 'wysiwyg-' + wysiwyg_count;
                 $(this).attr('id', id);
            }

            WYSIWYG[wysiwyg_count] = new InnovaEditor('WYSIWYG[' + wysiwyg_count + ']');
            WYSIWYG[wysiwyg_count].REPLACE(id);
            */

            var demo = new InnovaEditor('demo');
            demo.REPLACE('wysiwyg-1');

            console.log('loop');

 </script>

Эффект

Работает нормально, но, конечно, работает только для одного экземпляра редактора. Если мне нужно несколько экземпляров, мне нужно использовать каждый из них.

Попытка № 2:

<script type="text/javascript">

var wysiwyg_count = 1;
//var WYSIWYG = [];
var demo;

(function($) {
    $(function() {

        $('.wysiwyg-simple').each(function(){

            /*
            id = $(this).attr('id');
            if(id.length == 0)
            {
                id = 'wysiwyg-' + wysiwyg_count;
                 $(this).attr('id', id);
            }

            WYSIWYG[wysiwyg_count] = new InnovaEditor('WYSIWYG[' + wysiwyg_count + ']');
            WYSIWYG[wysiwyg_count].REPLACE(id);
            */

            demo = new InnovaEditor('demo');
            demo.REPLACE('wysiwyg-1');

            console.log('loop');
        });

    });
})(jQuery);
 </script>

Эффект

Заменяет весь текст HTML моей страницы кодом, связанным с JUST WYSIWYG, и жалуется, что JS недоступен (даже Firebug, поэтому не может отлаживаться).

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


Кто-нибудь знает, что, черт возьми, здесь происходит?

Ответы [ 3 ]

2 голосов
/ 13 мая 2010

Решение: не пытайтесь использовать InnovaStudio, вместо этого пошел с CKEditor.

1 голос
/ 10 февраля 2011

Даже если вы выбрали CKEditor, вас может заинтересовать решение. Вы можете предоставить второй аргумент для функции REPLACE. Этот второй аргумент также должен быть идентификатором, идентификатором элемента, способного принимать выходные данные html (например, div, span, p)

demo = new InnovaEditor('demo');
demo.REPLACE('wysiwyg-1', 'wysiwyg-1-replaceDiv');

Когда второй аргумент пропущен, InnovaStudio записывает вывод html в документ, просто используя:

document.write();

Надеюсь, это поможет!

0 голосов
/ 03 августа 2010

Почему вы не используете их собственный код инициализации начиная с версии 4.3:

    <textarea class="innovaeditor">
content here...
</textarea>


<script>
oUtil.initializeEditor("innovaeditor", 
{width:"700px", height:"450px"}
);
</script>

Метод oUtil.initializeEditor (селектор, опция). Первый параметр - это селектор, а второй - свойства редактора в формате JSON.

Селектор может быть:

Имя класса Css, если указано имя класса, все текстовые области с указанным именем класса будут заменены редактором. Textarea Id. Если это Id, необходимо добавить префикс «#», например, oUtil.initializeEditor ("# mytextarea"). Текстовый объект. Второй параметр - это свойства редактора. Здесь можно указать все допустимые свойства редактора, например, width, height, cmdAssetManager, toolbarMode и т. Д.

Обратите внимание, что этот метод может вызываться из события загрузки страницы или документа или во время загрузки страницы (если объект, на который ссылается селектор, уже обработан). Этот метод доступен автоматически, когда на странице есть скрипт редактора.

...