Обнаружение jquery.tinymce.js - PullRequest
1 голос
/ 11 декабря 2011

У нас есть «тестовая страница браузера», которая используется для диагностики проблем пользователей. Есть поля, которые пользователь может заполнить, а также немало обнаружений. Данные с этой страницы можно затем отправить по электронной почте в нашу техническую поддержку. Страница находится на http://www.rephunter.net/test-browser.php. Текущая страница больше не является полностью функциональной по следующей причине:

Я только что перевел сайт с использования dojo в jquery. Часть теста включает проверку поддержки tinymce. Раньше мы запускали «обычную» библиотеку tinymce, но переключились на версию jquery. В предыдущей версии, в которой использовалась более старая версия TinyMCE, поддержка была проверена следующим образом:

if(typeof tinyMCE == 'undefined')

Однако с новым экземпляром tinymce он всегда отображается как неопределенный, даже если на странице есть редактор tinymce. Я провел некоторое тестирование, и кажется, что tinyMCE определяется только после отправки формы. Например, вот фрагмент, который показывает, как это работает:

<head>
<script type="text/javascript">
    alert('head tinymce=' + typeof tinyMCE);
    function Validate()
    {
        alert('validate tinymce=' + typeof tinyMCE);
        if (tinyMCE)
            alert('tinymce is defined');
    }f
</script>
</head>

<body>
form onsubmit='Validate()'>
<textarea class="tinymce"></textarea>
<input type="submit" />
</form>
<script type="text/javascript">
    alert('body tinymce=' + typeof tinyMCE);
</script>

Независимо от того, что я сделал в программе обнаружения, единственный способ получить действительный объект tinyMCE - это отправить страницу. То есть оповещение «тело» не работает; предупреждение "validate" делает.

Один из обходных путей - поместить на страницу инструкции для пользователя, чтобы посмотреть страницу и посмотреть, есть ли редактор, а не просто текстовая область. Тем не менее, с нашими пользователями это было бы не идеально. Нам очень нужна электронная почта, и поэтому мне нужен способ обнаружить tinyMCE.

Возможно, я смогу решить эту проблему с помощью функции onsubmit, которая обнаруживает оттенки, но мне также хотелось бы, чтобы что-то отображалось непосредственно пользователю при первом отображении страницы.

Есть ли простое решение? Что-то похожее на элегантность if (typeof tinyMCE == 'undefined')

1 Ответ

2 голосов
/ 11 декабря 2011

Как насчет этого:

typeof jQuery.fn.tinymce != 'undefined'

Я только что посмотрел на источник вашего плагина и увидел это в начале:

(function(b){var e,d,a=[],c=window;b.fn.tinymce=function(j)
                                   ^^^^^^^^^^^^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...