2011-12-10 3 views
1

私たちには、ユーザーの問題を診断するための「ブラウザテストページ」があります。ユーザーが記入できるフィールドとかなりの数の検出があります。そのページのデータは、技術サポートに電子メールで送信することができます。ページはhttp://www.rephunter.net/test-browser.phpです。次の理由により、現在のページは完全に機能しなくなりました。jquery.tinymce.jsの検出

私はちょうどdojoからjqueryにウェブサイトを変換しました。テストの一部には、錫のサポートのチェックが含まれています。我々は、 "通常の" tinymceライブラリを実行するために使用されましたが、jqueryバージョンに切り替えました。 TinyMCEのエディタがある場合でもしかし、TinyMCEをの新しいインスタンスと、それは常に、未定義として起動します

if(typeof tinyMCE == 'undefined') 

: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のオブジェクトを取得する唯一の方法は、ページを提出するように思いません。つまり、 'body'アラートは機能しません。 「検証」アラートは行います。

回避策の1つは、ユーザーがページを見て、テキストエリアではなくエディタがあるかどうかを確認するページの指示を入力することです。しかし、ユーザーにとって理想的ではありません。私たちは本当に電子メールが欲しいので、私はtinyMCEを検出する方法が必要です。

tinymceを検出するonsubmit機能を使用することでこれを解決できますが、ページの最初の表示でユーザーに直接表示できるものもあります。

簡単な解決策はありますか?私はちょうどあなたのプラグインのソースを見て、最初にこれを見た

typeof jQuery.fn.tinymce != 'undefined' 

:どのようにこの程度であれば(typeof演算TinyMCEは==「未定義」)の優雅さに似たもの

答えて

2

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

大きなキャッチ!それは –

+0

私は "アドオンの返信"の入力を押して投稿を推測する!私はもっ​​とタイプしたかったので、それを "1ライナー"としなければならないと思います。私はこの関数が今私にとって真実を返すとも言いたい。しかし、私はどのように "有効になっていない"ケースをテストするのだろうか、ブラウザがそれを読み込めないことを意味しています。この場合、私はコードでそれを偽造することはできないと思っていますが、実際にはjQueryではなくJavascriptをサポートするブラウザを見つける必要があります。何か案は? –

+0

これで幸運です。ブラウザの互換性を確認したい場合は、Modernizrを試してみてください。それは良いツールです。 – Blender