У нас есть «тестовая страница браузера», которая используется для диагностики проблем пользователей. Есть поля, которые пользователь может заполнить, а также немало обнаружений. Данные с этой страницы можно затем отправить по электронной почте в нашу техническую поддержку. Страница находится на 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')