WYSIWYGエディターでウィジェットを編集できなくなりました


8

最近、WYSIWYGエディターでのウィジェットの編集が機能しなくなりました。

ウィジェットをクリックすると、ブラウザコンソールに次のエラーが表示されます。

Uncaught DOMException: Failed to execute 'setBaseAndExtent' on 'Selection': There is no child at offset 1.
    at Editor.<anonymous> (http://example.com/js/tiny_mce/tiny_mce.js:1:15327)
    at Dispatcher.dispatch (http://example.com/js/tiny_mce/tiny_mce.js:1:6000)
    at DOMUtils.c (http://example.com/js/tiny_mce/tiny_mce.js:1:184650)
    at j (http://example.com/js/tiny_mce/tiny_mce.js:1:58627)
    at HTMLDocument.y (http://example.com/js/tiny_mce/tiny_mce.js:1:58785)
(anonymous) @ tiny_mce.js:1
dispatch @ tiny_mce.js:1
c @ tiny_mce.js:1
j @ tiny_mce.js:1
y @ tiny_mce.js:1
tiny_mce.js:1 Uncaught DOMException: Failed to execute 'setBaseAndExtent' on 'Selection': There is no child at offset 1.
    at Editor.<anonymous> (http://example.com/js/tiny_mce/tiny_mce.js:1:15327)
    at Dispatcher.dispatch (http://example.com/js/tiny_mce/tiny_mce.js:1:6000)
    at DOMUtils.c (http://example.com/js/tiny_mce/tiny_mce.js:1:184650)
    at j (http://example.com/js/tiny_mce/tiny_mce.js:1:58627)
    at HTMLDocument.y (http://example.com/js/tiny_mce/tiny_mce.js:1:58785)

そして、既存のウィジェットを編集するためのポップアップの代わりに、新しいウィジェットを作成するためのポップアップが表示されます。

OSに関係なく、ChromeでMagento CE 1.xとEE 1.xの異なるバージョンの動作を確認しました。最近のセキュリティパッチSUPEE-9767に関連していますか?

回答:


10

どうやらこれはパッチとは関係ありませんが、同じ時期に公開された最新のChromeアップデート(Chrome 58)に関係しています。TinyMCEは、そのバージョンで削除された非推奨の機能を使用します。

Magento 2.0および2.1も影響を受けます(https://github.com/magento/magento2/issues/9518を参照)

画像全般に問題があるようです。TinyMCEプロジェクトの関連する問題を次に示します。https//github.com/tinymce/tinymce/issues/3611 TinyMCE 4.6で問題が修正されます。

次のオプションがあります。

  • バンドルされているTinyMCEバージョンを4.6以降に置き換える
  • MagentoがTinyMCEを更新するパッチをリリースするまで待ってから、他のブラウザーを使用して(現在はChromeだけが問題のようです)、廃止された機能がすぐに削除されないようにしてください。

詳細な調査をありがとう、私はそれについて怠惰
でした

3

私が適用した簡単な修正は、tiny_mce JSファイルを自分のパッチを適用したバージョンで上書きすることでした。

        editor.onClick.add(function(editor, e) {
            e = e.target;

-           // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250
-           // WebKit can't even do simple things like selecting an image
-           // Needs tobe the setBaseAndExtend or it will fail to select floated images
            if (/^(IMG|HR)$/.test(e.nodeName)) {
-               selection.getSel().setBaseAndExtent(e, 0, e, 1);
+               /** Removed webkit bug fix - it breaks in Chrome 58 */
+                selection.select(e);
            }

            if (e.nodeName == 'A' && dom.hasClass(e, 'mceItemAnchor') {

怠惰なハックのために。カーソルで画像を強調表示します(テキストを選択しているかのように)。強調表示されたら、クリック可能です。


2

ありがとう、TylerSN

私の場合、削除する必要があったコードは次のようになります。

if (tinymce.isWebKit && e.nodeName == 'IMG')
    t.selection.getSel().setBaseAndExtent(e, 0, e, 1);

注:これは元のtiny_mceリリース(v3.5.4、2011-09-06)であり、Magentoの支持はありませんでした。しかし、私はこの質問に出くわしUncaught DOMException: Failed to execute 'setBaseAndExtent' on 'Selection': There is no child at offset 1. at Editor.<anonymous>、他の人の参照用のソリューションを探して追加したいと思いました。少し「オフトピック」がこの状況で許されることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.