Tiny mce перестал работать после обновления (модифицированный URL) - PullRequest
5 голосов
/ 03 июня 2011

Я использовал крошечный mce (версия 3.2.6) довольно долго (без каких-либо проблем), но хотел обновить его до более новой версии (3.4.2). Причиной обновления стали некоторые проблемы со сторонним плагином (spellchecker) - после попытки с более новой версией эти проблемы были исправлены и в env разработчиков. все работало нормально. Проблема возникла в live env (после доставки новой версии приложения клиенту), на стороне клиента вы можете подключиться к приложению (используя крошечный mce) двумя способами:

(1) введите адрес (так нормальный способ, все работает нормально)

(2) с помощью какого-то клиентского приложения для портала, которое изменяет URL-адреса по неизвестным мне причинам, - так Tiny mce перестал работать после обновления до (3.4.2). (Я дважды проверил, и это связано только с крошечным обновлением версии mce, а не с плагинами или другими проблемами).

Способ, которым портал клиентов преобразует URL, выглядит следующим образом: неконвертированный URL:

http://server.address/blabla/js/jsFileName.js?v=123

конвертированный URL (взят из скрипача):

https://client.portal.com/http://server.address/blabla/js/jsFileName.js?v=123&psScriptReferrer=http://server.address/blabla/

Как я уже говорил, «старая» версия (3.2.6) работала нормально (даже с этими магически преобразованными URL-адресами), возникла проблема после обновления крошечного mce (без изменений конфигурации или чего-либо еще). Я получаю ошибку:

q is not a constructor
https://client.portal.com/http://server.address/blabla/js/tiny_mce/tiny_mce.js?v=123&psScriptReferrer=http://server.address/blabla/
Line 1

(function(d){var a=/^\s*|\s*$/g,e,c="B...{a.selection.onSetContent.add(f)})}});

Я получаю это сообщение об ошибке во всех браузерах (проверено: IE6 / IE8 / FF3.6). Это также приводит к тому, что крошечный mce не загружается (отображается только текстовый ввод 'plain-html').

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

Я попробовал некоторые изменения для следующих параметров (установив их в 0) - не повезло convert_urls: 1, относительные_урлы: 1, remove_script_host: 1

это еще один «многообещающий» параметр: document_base_url: tinymce.documentBaseURL

но так как это приложение должно работать двумя способами, описанными выше (1) и (2), я не могу просто жестко закодировать ссылку там (также это звучит как очень хрупкое решение).

Я не могу на 100% сказать, что это ошибка в tinymce, потому что при использовании «нормального» адреса все работает нормально. С другой стороны, я ничего не могу сделать с этим преобразованием URL.

<script type="text/javascript">
    tinyMCE.init({
        mode : "exact",
        elements : "content, contentFr",
        theme : "advanced",
        plugins : "spellchecker",
        spellchecker_languages : "+English=en_CA,French=fr",
        spellchecker_rpc_url : "jmyspell-spellchecker",

        // Theme options
        theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,fontselect,fontsizeselect,|,forecolor,backcolor,sub,sup",
        theme_advanced_buttons2 : "link,unlink,|,bullist,numlist,|,justifyleft,justifycenter,justifyright,justifyfull,|,code,|,spellchecker",
        theme_advanced_buttons3 : "",
        theme_advanced_buttons4 : "",

        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : true,
        theme_advanced_resize_horizontal : 0,
        theme_advanced_path: false,
        content_css : "css/tinyMCE_custom.css",
        oninit: function(){
            tinyMCE.get('content').setContent('some text here');
            tinyMCE.get('contentFr').setContent('some different text here');
        }
    });
    </script>

Спасибо за любую помощь / подсказки.

С уважением,

Peter

1 Ответ

1 голос
/ 12 июня 2011

Я бы попробовал перейти на текущую версию TinyMCE, которая является 3.4.3.

В файле changelog.txt этой версии, среди многих других исправлений,

"Исправлена ​​ошибка, из-за которой в tinymce.util.URI возникало исключение при разборе относительного URI, и параметр base_uri не был предоставлен."

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

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