タグ

ブックマーク / sawat.hatenablog.com (2)

  • sawatの日記 - evalの第二引数とGreasemonkeyのunsafeWindowについて

    「http://d.hatena.ne.jp/brazil/20070420/1177060289」でFirefox専用の第二引数に環境の指定をとるevalの使い方について説明されています。その元はこちら「http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20070414#p02」で、僕もこれを見たときに初めてしりました。そのころ僕はグリモンのスクリプトをいじっていたので、ちょっと気になっていくつか試してみて、ネタ元のページに以下のようなブクマコメントをしました。 evalの第2引数しらなかった。これを応用すると、GreasemonkeyでusafeWindow.xxx() とする場合、xxx内部からeval("GM_xmlhttpRequest", arguments.callee.caller)でGM_xmlhttpRequestが取得されてして

    sawatの日記 - evalの第二引数とGreasemonkeyのunsafeWindowについて
  • Unicodeエスケープ - sawatのブログ

    付箋紙Greasemonkeyで、GM_setValueに登録した日語の文字化け対策にencodeURIをつかったけど、encodeURIはURIをエンコードするための関数なのであんまり褒められた使い方ではないですね。しかも、encodeURIのようなURLエンコーディングは文字列をUTF-8にしてから、エンコード対象の各バイトを%xx形式*1で表現するので、日語1文字をあらわすのにたいていの場合ASCII9文字が必要になって効率が悪いです。*2 なので、前述のような単に非ASCII文字をエスケープしたいだけのようなケースではUnicodeエスケープを使った方がよいです。Javaのpropertiesとかnative2asciiとかのやつです。 Unicodeエスケープは\uxxxx*3の形式であらわすので、たいていの日語1文字はASCII6文字になって、URLエンコーディングに比べ

    Unicodeエスケープ - sawatのブログ
    teppeis
    teppeis 2008/04/17
    GM_setValueに登録した日本語の文字化け対策, ”マルチバイト”.toSource()
  • 1