Hatena::Groupjavascript

emergentのJavaScript入門日記

|

2008-11-23

右クリック禁止を解除するブックマークレット

04:09 | 右クリック禁止を解除するブックマークレット - emergentのJavaScript入門日記 を含むブックマーク はてなブックマーク - 右クリック禁止を解除するブックマークレット - emergentのJavaScript入門日記

Bookmarklets for Zapping Annoyancesの「restore context menu」をブックマークに入れればよい。

例えば、このページなどで使えた。

中身は、

javascript:(function() { function R(a){ona = "on"+a; if(window.addEventListener) window.addEventListener(a, function (e) { for(var n=e.originalTarget; n; n=n.parentNode) n[ona]=null; }, true); window[ona]=null; document[ona]=null; if(document.body) document.body[ona]=null; } R("contextmenu"); R("click"); R("mousedown"); R("mouseup"); })()

window, document, document.bodyの各プロパティに対してイベントリスナを無効にしているようす。

2008-11-22

GreaseMonkeyでonclickが使えなくてはまった

13:59 | GreaseMonkeyでonclickが使えなくてはまった - emergentのJavaScript入門日記 を含むブックマーク はてなブックマーク - GreaseMonkeyでonclickが使えなくてはまった - emergentのJavaScript入門日記

ボタンを追加して押したらイベント発生させるようなぐりもん書いてて、以下のようなコードを書いてたらエラー吐かれてしばらくハマってた。

var button = document.createElement('input');
button.type = 'button';
button.value = 'hogehoge';
button.onclick = function() { ... };

ちょびっと悩んだあとGoogleさんにお伺い。ありました。

これがダメ。getElementByIdはElement自身ではなくXPCNativeWrapperというラッパを返すため、 上記のようなコードではelementにonclickを設定するコードにはならないというもの。 (idやclassNameのようなプロパティはXPCNativeWrapperがちゃんとラッピングしているElementの値を返すようです)

304 - narucissus is Not Modified: Greasemonkeyで遊ぶ(その1)

要するに、ちゃんとaddEventListener使えということ。

button.addEventListener('click', function() { ... }, false);

としたら、ちゃんと動作するようになりました。

2008-11-16

E4Xも勉強しないと

01:00 | E4Xも勉強しないと - emergentのJavaScript入門日記 を含むブックマーク はてなブックマーク - E4Xも勉強しないと - emergentのJavaScript入門日記

JavaScript勉強がまだまだなので、E4Xまで全然ついていけてない。

E4X仕様を読まなきゃ。

2008-11-15

角丸の実装

02:39 | 角丸の実装 - emergentのJavaScript入門日記 を含むブックマーク はてなブックマーク - 角丸の実装 - emergentのJavaScript入門日記

これはよさげ!

今まで角が丸い画像がないと作れないと思ってた。

|