2

send_keys()テキスト領域にできるように、IE9でiframeに切り替えようとしています。切り替えると、Webドライバーが切り替えたと認識していることがわかります(印刷するpage_sourceと正しい)が、カーソルは別のテキストフィールド(TinyMCEではない)でまだ点滅しています。この時点で、キーを送信すると、キーが追加されますTinyMCE ではなく、他のテキストフィールド。

だから私は回避策を試してきました.tinyMCE iframeを選択するとclick()、カーソルは正しい場所にあり、キーを送信できますが、元のフレーム/ウィンドウに戻って入力を送信することはできません.

他の誰かが IE9 でこれに遭遇しましたか?回避策はありますか?

これは Firefox と Chrome では機能しますが、IE9 では機能しません。

4

1 に答える 1

3

TinyMCE は動的コンテンツを生成するため、このような問題を回避するのは非常に複雑です。TinyMCE エディターのコンテンツを操作するために最終的に行ったことは、JavaScript を介して直接 API を呼び出し、 page.execute_scriptすべてを JavaScript で実行することでした。

私のJSコードのサンプルは次のとおりです。

    jQuery('textarea.tinymce').tinymce().setContent('test text in editor');   
    jQuery('textarea.tinymce').tinymce().selection.select(jQuery('textarea.tinymce').tinymce().dom.select('p')[0]);
    jQuery('textarea.tinymce').tinymce().execCommand('Italic','true');
    jQuery('textarea.tinymce').tinymce().execCommand('Underline','true');  
    jQuery('textarea.tinymce').tinymce().execCommand('Bold','true');

1 行目は TinyMCE のテキストエリアにテキストを追加し、2 行目はそれを選択し (ユーザーのカーソル選択をシミュレート)、3 行目、4 行目、5 行目はコントロールを操作するだけです。

.execCommand()さまざまな拡張機能を有効にするのに特に役立ちました。その後、使用していたフォーム フィールドに予想される HTML タグが設定されていることを確認し、1 日で終了しました。

それが役立つことを願っています!

于 2012-08-23T20:55:23.780 に答える