检测jquery.tinymce.js

时间:2011-12-10 22:19:18

标签: jquery tinymce

我们有一个“浏览器测试页面”,用于诊断用户问题。用户可以填写的字段,以及相当多的检测。然后可以将该页面的数据通过电子邮件发送到我们的技术支持中。该页面位于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对象的唯一方法似乎是提交页面。也就是说,“身体”警报不起作用; “验证”警报确实如此。

一种解决方法是在页面上添加说明,供用户查看页面,看看是否有编辑器而不仅仅是textarea。但是,对于我们的用户来说,这将不太理想。我们真的想要这封电子邮件,因此我需要一种方法来检测tinyMCE。

我可以通过提供检测tinymce的onsubmit函数来解决这个问题,但我也想在页面的第一个显示屏上直接向用户显示这些内容。

有简单的解决方案吗?类似于if的优雅(typeof tinyMCE =='undefined')

1 个答案:

答案 0 :(得分:2)

这个怎么样:

typeof jQuery.fn.tinymce != 'undefined'

我只是查看了插件的来源,并在开头看到了这一点:

(function(b){var e,d,a=[],c=window;b.fn.tinymce=function(j)
                                   ^^^^^^^^^^^^