7. JavaScript関連の糞雑魚メモ


Home -> 雑用 -> 雑用メモ -> [7. JavaScript関連の糞雑魚メモ]

2015/04/12 作成
一切推敲していない糞文章故、大変読み難い代物となっております。

概要

JavaScript関連の雑多なメモを集約。定期的に更新というか追記していくつもり。
糞記事を量産するなと言われてもそんなの知らん。これは備忘録、覚書だから中身はユルユルのスカスカ。

一覧

1. JavaScriptユーザ拡張におけるイベントハンドラ

Operaがバージョン15以降大幅に糞化したにも関わらず我慢して使っている。
しかしやっぱり糞なので不便なことも多々ある。その1つがUserScriptである。
Opera12以前はデフォルトでUserScriptを読み込む機能が付いていたので大変便利だった。
それがOpera15以降では削除されてしまっている。UserScriptを使いたければ拡張機能を用いなければならない。

その拡張機能だが、これもまたUserScriptとは少々使い勝手が違い面倒なのである。
その面倒の1つがイベントハンドラの扱いの違いである。

UserScriptでは読み込まれるタイミングが違うだけで実行のされ方はサイト内のスクリプトと同じであった。
一方でGreasemonkeyに代表されるユーザ拡張ではXPCNativeWrapperを使っているためそのままでは動かないコードもある。
今までUserScriptでは下のような感じで書いていたがこれでは駄目になった。

window.setTimeout("my_func()", 1000);

今後は下のように書かないといけない。

window.setTimeout(my_func, 1000);

だから何?と思う人はそれでもいいが、実はちょっと面倒なことがまだ残っている。
UserScriptでは下のような感じで動かしていたが、この書き方ができなくなってしまった。

var arg1 = "hogehoge1";
var arg2 = "hogehoge2";
setTimeout('my_func("' + arg1 + '", "' + arg2 + '")', 1000);

今後は下のように書かないといけない。

var arg = "hogehoge";
setTimeout(my_func, 1000, arg1, arg2);

という訳で書き直すのが面倒だよねという話であった。
参考記事を見ると他にも落とし穴がたくさんあるようなので一々気を付けなければならない。

(2015/04/12)


管理人Twitter: @su_te_ak/◆mmft4k9vgtL6
要望等はTwitterへ

Home -> 雑用 -> 雑用メモ -> [7. JavaScript関連の糞雑魚メモ]

ここ以降は鯖が勝手に付加するやつです