Operaのキーボードショートカット設定ファイルで"(ダブルクオート)が使えない問題

More than 1 year has passed since last update.

問題

Operaのキーボードショートカット設定ファイルで

a="Go to page, "javascript:alert(0);""

などとすると任意のjavascriptを実行するブックマークレットを1keyショートカットに設定することができますが、
この設定ファイルにおいて"(ダブルクオート)が特殊文字扱いになっているため、
javascriptのストリングリテラルをつくるのにシングルクオートしか使えないという事になっています。

じゃあシングルクオート縛りでjs書けばいいじゃんと思いきや、JSONにおける文字列型はダブルクオートしか使ってはいけないという制約があります。

というわけで、この設定ファイル内のjavascriptでvalidなjsonを文字列として含めたいという場合、困ります。

解決策

var dq=String.fromCharCode(34);

とすることでダブルクオートを含んだ文字列を表現することができます。

以下具体例

a="Go to page, "javascript:(function(){var dq=String.fromCharCode(34);var i=new Image();i.src='http://fluentd/tag?json='+'{'+dq+'title'+dq+':'+dq+escape(document.title)+dq+','+dq+'url'+dq+':'+dq+escape(location.href)+dq+'}';document.body.appendChild(i);})();""

誰かの役に立つんだろうかこのノウハウ