tinyMCE отображается только в диалоговом окне, если инициализируется при загрузке страницы - PullRequest
1 голос
/ 14 декабря 2010

Я создал приложение, которое использует кучу запросов AJAX. Он отображает таблицу продуктов, и оттуда вы можете нажать на название продукта, которое откроет диалоговое окно (box1). Внутри box1 есть еще один список ссылок, по которым вы можете щелкнуть. При нажатии откроется другое диалоговое окно (box2).

В box2 у меня есть поле textarea, которое инициализируется как tinyMCE. По какой-то причине инициализация текстовой области в качестве редактора tinyMCE не работала. Итак, я создал отдельное поле textarea, инициализированное как tinyMCE при загрузке страницы, в отдельном div, который работал нормально. Поэтому я перешел к текстовой области во вставке 2, и неожиданно она инициализировалась как tinyMCE. Итак, я просто установил этот отдельный div, чтобы ничего не отображать. Как это имеет смысл?

Пока я оставлю это так, потому что это работает. Однако я очень сомневаюсь, что это правильный способ сделать это. Кто-нибудь еще испытывал нечто подобное?

Дайте мне знать, если я должен опубликовать код.

Спасибо.

РЕДАКТИРОВАТЬ: В соответствии с просьбой, вот код. Имейте в виду, что функция initTinyMCE была написана кем-то давно из классического файла ASP. Моя работа - преобразовать его в файл aspx.

Внутренний файл, создающий текстовое поле и вызывающий функцию initTinyMCE () javascript ...

htmlString.Append("<p><span class=\"regTextBld\"><strong>Scenario Text</strong></span>");
            htmlString.Append("<script type=\"text/javascript\">initTinyMCE();</script>");
            htmlString.Append("<textarea class=\"TinyMCEeditor\" name=\"txtEntry\" id=\"txtEntry\" style=\"height:400px; width: 99%;\">" + reader["assumptions"] + "</textarea></p>");

А вот и функция initTinyMCE ...

function initTinyMCE() {
        //alert("x");
        initPlugins();
        tinyMCE.init({
            mode: "specific_textareas",
            editor_selector: "TinyMCEeditor",
            theme: "advanced",
            //plugins : "economy,safari,style,table,advhr,advimage,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,visualchars,nonbreaking,template",
            plugins: "economy,safari,style,table,inlinepopups,searchreplace,print,contextmenu,paste,fullscreen,visualchars,medclink",
            theme_advanced_buttons1: "cut,copy,paste,pastetext,replace,print,|,undo,redo,|,rspell,|,link,unlink,|,hr,image,table,|,code",
            theme_advanced_buttons2: "bold,italic,underline,removeformat,|,numlist, bullist,outdent,indent,|,justifyleft,justifycenter,justifyright,justifyfull,|,nonbreaking,charmap",
            theme_advanced_buttons3: "",
            theme_advanced_toolbar_location: "top",
            theme_advanced_toolbar_align: "left",
            content_css: "/style/intranet.css?" + new Date().getTime(),
            paste_preprocess: function(pl, o) {
                o.content = o.content.replace(/\u2019/gi, "'"); // ’
                o.content = o.content.replace(/\u201C/gi, "\""); // “
                o.content = o.content.replace(/\u201D/gi, "\""); // â€
            },
            cleanup: false,
            encoding: "html",
            entity_encoding: "named",
            verify_html: true
        });
    }

1 Ответ

1 голос
/ 14 декабря 2010

Я использую jquery tinymce

$('#textareaid').tinymce().show();

Используйте этот код, когда вы нажимаете на textarea, чтобы активировать tinymce.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...