LoginSignup
4
3

More than 5 years have passed since last update.

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

Posted at

問題

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);})();""

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

4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3