ブログこの広告は、90日以上更新していないブログに表示しています。2013-03-24はてなブログの記事内にブックマークレットを設置する方法はてなブログの記事内にブックマークレットを設置しようとしたら少し面倒なことが起こったので、それに対処したという話。ブックマークレットがうまく設置できないはてなブログでは、リンクにjavascriptスキームを設定することでブックマークレットを設置できます。そこで僕も設置しようとしたんですが、なぜかうまくいきません。<a/>タグが正しく表示されなかったり、ブックマークレット内のJavaScriptコードに書いた覚えのない<span/>タグが紛れ込んだりします。はてな記法がブックマークレットの<a/>タグを改変する原因を調べてみると、どうやらはてな記法が関係しているようです。ブックマークレットとして<a/>タグを設置する場合、href属性内に記述したJavaScriptコードの一部がはてな記法として解釈され、<a/>タグが正しく表示されなくなったり、コードが改変されたりするようです。はてな記法を回避するはてな記法を回避する方法は、ブログの編集モードによって異なります。編集モードがはてな記法モードの場合はてな記法モードでは、はてな記法で使われる特殊文字をエスケープすれば、<a/>タグのhref属性内に記述したJavaScriptコードの一部がはてな記法として解釈されることを防げます。以外の文字参照は自動的に元の文字に戻ってしまうようです。そのため、href属性内のJavaScriptコードに影響を及ぼす可能性があるいくつかの記法について、個別に対処する必要があります。ちなみに、見たまま編集モードで使えるのは、インラインのはてな記法のみです。すべての自動リンクのことです。脚注記法の回避<a/>タグのhref属性内に記述したJavaScriptコードに"(("と"))"で囲まれた部分がある場合、その部分が脚注記法と見なされることがあります。)"にそれぞれ置き換えます。自動リンク停止記法の回避<a/>タグのhref属性内に記述したJavaScriptコードに"[dummy]"と"[dummy]"で囲まれた部分がある場合、その部分が自動リンク停止記法と見なされることがあります。脚注記法の回避処理と自動リンク停止記法の回避処理を通すことで、その<a/>タグは、見たままモードのHTML編集で貼り付けられる形式になります。ブックマークレットジェネレーターを作った上記の変換・置換処理を自動でやってくれる、はてなブログ用ブックマークレットジェネレーターを作ったので置いておきます。コードの圧縮などは行いません。Serviceなどのサービスを使ってください。そのようなサービスから出力されたJavaScriptコードを入力としてブックマークレットを生成することもできます。none注意"見たままモードのHTML編集で貼り付けられる形式にする"処理は、JavaScriptコードに対する単純な文字列置換によって行っています。そのため、例えば、正規表現リテラル内の文字列が置換され正規表現の意味が変わってしまい、ブックマークレットが意図した通りに動作しなくなることもありえます。そのような場合は、ブログの編集モードをはてな記法モードにした上で、"はてな記法で使われる特殊文字をエスケープする"処理を行ったブックマークレットを貼り付けてください。月別アーカイブTwitterリンクkwixilvr.com商標速報botスーパー戦隊ガイド仮面ライダーガイドプリキュアガイドはてなブログをはじめよう!kwixilvrさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。