jHTMLarea - Выбор текста не работает в IE9

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

Код ниже - это то, что я использую для вызова плагина.

       $(function() {
            $("#aboutTextEdit").htmlarea({
            toolbar: ["bold", "italic", "unorderedList", "|", "link", "unlink" ], 
                loaded: function(event) {               
                }
            });
        });

2 ответа

Решение

Догадаться!! Благодаря Warren Bullock

И используя этот вопрос stackOverflow (как только я выяснил, что это проблема iframe): Невозможно выделить текст, оставленный в Iframe за пределами видимой области

кикер входит в файл jHTMLArea и комментирует эту строку: edit.designMode = 'on';

который находится на линии 308. Прекрасно работает во всех браузерах сейчас!

У меня была такая же проблема с jHTMLarea 0.7.5. Эта проблема существует и в других WYSIWYG-редакторах.

Для исправления этого вы должны отредактировать ваш файл jhtmlarea.js. Ищи:

DesignMode= на

Затем удалите этот термин и вставьте

edit.body.contentEditable = true;

.. в конце функции. Убедитесь, что вы устанавливаете contentEditable ПОСЛЕ того, как начальный документ написан так:

[..]

initEditor:function(options)
{
    var edit=this.editor=this.iframe[0].contentWindow.document;
    edit.open();
    edit.write(this.textarea.val());
    edit.close();
    if(options.css)
    {
        var e=edit.createElement('link');
        e.rel='stylesheet';
        e.type='text/css';
        e.href=options.css;
        edit.getElementsByTagName('head')[0].appendChild(e);

    [..] 
    edit.body.contentEditable = true;

[..]

Похоже, что это решение работает и в Firefox, поэтому вам не нужно делать переключатель браузера. Посмотрите, что вы устанавливаете "contentEditable" для HTML-элемента, такого как "body" или "div", а не непосредственно для "document"-Object.

Другие вопросы по тегам