TypePad 絵文字 for TinyMCEがうまく動かなくなったので対策

WordPressで記事を書くときに絵文字を挿入するための
プラグインである「TypePad 絵文字 for TinyMCE」、
なんかここしばらくの間、動作がおかしかったので修正してみました

ちなみに同タイミングと思いますが、
「WP Emoji One」も不具合が発生していましたので
こちらもほぼ同様の対応で復旧しました

不具合内容

絵文字挿入のために下の画像の赤枠で囲ったボタンを押すと
本来はポップアップで絵文字の一覧が表示されます。

(本来表示されるポップアップ)

このポップアップが最近は空白でした・・・。
下の画像は昨日までの状態です

一応、画像データ自体はサーバー上にはあるので、
パスでしっかり指定すれば記事には表示できました。
ただしすっごい不便というわけで今日はそれを調べてみました。

こういうのは他のプラグインとの絡みもあるので
とりあえず色々停止してみたけど解決せず・・・。
そうなると何かのバージョンアップの関連で動かなくなったのかもしれません

次に空白のポップアップ部分をブラウザでソースを見てみました。
そうしたところ、データ自体はちゃんと作られていて、
表示がされていないだけという状態であることが分かりました

その後、Javascriptのファイルなどが存在しているかなど
調べてみましたが、それらは指定されたパスにありそう・・・。
なかなかコレという部分にたどり着けませんでしたが、なんとか見つかりました。

対策方法

ポップアップの表示部分である「window.php」を編集します。
見る部分は<body ・・・>の1行です。

bodyは通常では「style=”display:none”」となっており、
ブラウザでの表示がされないようにスタイルが記載されてます。

ポップアップが動き出してから、
Javascriptで”display:none”を打ち消して表示させるんですね。

なんとなく、これが動いていなくてずっと非表示のままだとしたら・・・
そう思ってスクリプトを逆にしてみたら動いちゃいました

<body id="link" onload="tinyMCEPopup.executeOnLoad('init();');document.body.style.display='';" style="display: none">

↓(スタイルの変更を前にする!もしくはスタイルの非表示はやめる!)

<body id="link" onload="document.body.style.display='';tinyMCEPopup.executeOnLoad('init();');" style="display: none">

もしくは

<body id="link" onload="tinyMCEPopup.executeOnLoad('init();');">

逆にして動くってことは、「init()」のスクリプトの方が
うまく働いていない可能性が高そうですけど、
まぁ使用上はこれで問題なさそうなので、これでいこうと思います

なお、いっそスタイルの表示、非常時の切り替えをなくしてもOKでした。
というか「WP Emoji One」の方のプラグインの場合には
後者でないと動きませんでした
「typepad emoji for tinymce」はどちらでもOKでした。

今回の不具合は私の環境だけなのか、
それとも同じ症状で困っている人がいるのかわかりませんが、
一応メモ代わりに記載しておこうかと思います。

なお、これにより別の不具合が出た場合は・・・すいません
しかしサポートはできないので、自己責任でお願いします

スポンサーリンク

シェアする

フォローする

コメント

  1. […] また、原因を調査すると参考サイトを発見する事が出来ました […]

  2. […] TypePad 絵文字 for TinyMCEがうまく動かなくなったので対策 […]