ポイント
- JavaScript を a タグの href 部分に入れたいときは、エディターは「テキスト」で編集する。
- エディターは「テキスト」から「ビジュアル」へ切り替えてはいけない
事の発端。あらあらまあまあ。どうしたのかしら?ブックマークレットが消えてしまいますの。。。
上記の記事執筆中に、ブックマークレットの JavaScript である「javascript:window.open(‘http://topsy.com/trackback?url=’+encodeURIComponent(location.href));void(0);」を投稿の「Topsy で開く」というテキストのリンクとして挿入したかったのですの。
なお、そのとき WordPress のエディターはビジュアルでした。
- テキストを選択
- リンクの挿入/編集ボタン(option + shift + A。ただし Mac)で「リンクの挿入/編集」ウインドウを表示
- 「URL」にブックマークレットの JavaScript を入力し、「リンク追加」
以上の通常の手順でリンクを追加し、「下書きとして保存」や「公開」、「更新」いたしました。
ところが!プレビューや投稿を表示してみましてもブックマークレットの JavaScript が無くなっています。文字通り、HTML ソースを確認してみましても、無いのです><。
投稿の編集画面に戻ってテキストエディターで見てみると、なんと次のように href 以下のリンクの URL 部分が消えて無くなっておりました。
<a>Topsy で開く</a>
「下書きとして保存」「公開」「更新」や、「ビジュアル」エディター「テキスト」エディター切替時に起きること
どうやら、JavaScript は自動的に a タグから href 部分が除去されてしまうようですの。
それは、次のような場合でしたわ><。
- ビジュアルエディターで JavaScript リンクを追加し、「下書きとして保存」「公開」「更新」した時
- ビジュアルエディターで JavaScript リンクを追加し、ビジュアルエディターへと切り替えた時
- テキストエディターで JavaScript リンクを追加し、ビジュアルエディターへと切り替えた時
一方で、次の場合は JavaScript リンクを入れた a タグの href 部は除去されませんでした。
- テキストエディターで JavaScript リンクを追加し、「下書きとして保存」「公開」「更新」した時
おわりに
もしかして WordPress のバグかしら?ただ、根本の考えとして、
- セキュリティが低下するなどの理由から WordPress ではリンクに JavaScript は入れられないようにするべき
- JavaScript はブックマークレットとしてリンクに入れられるのだから WordPress でも使いたい人は入れられるようにするべき
- テキストエディターを使う人は HTML が使える人なのだから、JavaScript をリンクに入れる事を許可するべき。ビジュアルエディター使用者は JavaScript 理解してなさそうだから問答無用で除去するべし
以上の 3 つ程思いつきました。どれも、そう言われれば、「そうですね」と言えそうですの。
わかりませんわね。
でも、今回の現象は覚えておいて、JavaScript を a タグの href 部分に入れたいときは、テキストエディターを使いますわ♪
なお、今回の問題は、以前のこの投稿での課題と同じですの。WordPress の仕様が変わったか、もしくはたまたま解決できたのを勘違いしたか、ですの。
以上です。