首页 文章

检测jquery.tinymce.js

提问于
浏览
1

我们有"browser test page"用于诊断用户问题 . 用户可以填写的字段,以及相当多的检测 . 然后可以将该页面的数据通过电子邮件发送到我们的技术支持中 . 该页面位于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 回答

  • 2

    这个怎么样:

    typeof jQuery.fn.tinymce != 'undefined'
    

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

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

相关问题