カテゴリー
WordPress

【WordPress】ブックマークレットをリンクとして追加する方法(JavaScript を a タグの href に追加する方法)

ポイント

  • JavaScript を a タグの href 部分に入れたいときは、エディターは「テキスト」で編集する。
  • エディターは「テキスト」から「ビジュアル」へ切り替えてはいけない

事の発端。あらあらまあまあ。どうしたのかしら?ブックマークレットが消えてしまいますの。。。

上記の記事執筆中に、ブックマークレットの JavaScript である「javascript:window.open(‘http://topsy.com/trackback?url=’+encodeURIComponent(location.href));void(0);」を投稿の「Topsy で開く」というテキストのリンクとして挿入したかったのですの。

なお、そのとき WordPress のエディターはビジュアルでした。

  1. テキストを選択
  2. リンクの挿入/編集ボタン(option + shift + A。ただし Mac)で「リンクの挿入/編集」ウインドウを表示
  3. 「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 の仕様が変わったか、もしくはたまたま解決できたのを勘違いしたか、ですの。

以上です。

コメントを残す