JavaScript
Facebook ではてなスターを使いたかったんだけど、 SiteConfig 書いただけだと HatenaStar Everywhere が満足に動かなかったので、ちょこっと user.js 等を書いたりした。 いるもの Greasemonkey http://s.hatena.ne.jp/js/HatenaStarEverywhere.user.js htt…
何が危ないのか img.onerror や img.onload は src 属性の内容が評価された段階で実行されるので、外部ソースに対して HTMLDocument を構築する際などで、意図していないタイミングでスクリプトが実行されるケースがある。 具体的には、以下のような場合。 v…
この件について。 http://d.hatena.ne.jp/iskwn/20091215/1260828978 継承というかスコープがわかりやすいというのもメリットだと思うけど、カプセル化しやすいのも大きなメリットかなと思う。 function Foo(){} (function(){ var bar = 'bar'; this.bar = b…
JSCron が Cron としてはかなりいまいちで不満だったので、適当にでっちあげてみた。 http://github.com/send/misc/blob/02d97e5ba9adbc124cf218d922e0a79fe262a6f2/js/cron.js if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (elt /*…
id:HolyGrail 周りで盛り上がってたので、ちょっと調べてみた。 DOMContentLoaded イベント使ったら、計測どころを何処にしていいかわからないので、それ以外の部分で。 昔ながらのやりかた。 <html lang="ja"> <head> <title>Test</title> </head> <body> <script> var start = new Date(); </script> <div> <ol> <li><a class="events" onclick="javascript:(function(){alert(1)})()">click!</a></li></ol></div></body></html>
Firefox や、 Opera で DOMNodeInsertedIntoDocument イベントがあまりイケてなかったので、比較的マシな DOMNodeInserted イベント使って、似たような動きになるようなモノを作ってみた。 Firefox 2.0.0.12 と Opera 9.25 と Safari 3.0.4 で動作確認してま…
反省点とか。 TAKESAKOメソッドでその場で資料を作ってたのでgdgdでした 調べる部分などはあらかじめ調べていたから良いかなと思ったら甘かった。 プロジェクタ等のチェックはやっておくべきだった。 フォントサイズとかコントラストとかレイアウトとかgdgd …
時間がなかったので、数分だけ喋った。ついでにFirebugの話だけじゃないよ。 以下の、htmlを題材に使った。 <html> <head> <title>send_のほーむぺーじ</title> <script type="text/javascript"> console.log("I hate %s !!!!","Safari"); </script> </head> <body> <div id="hoge"> <form> <input type="text" name="hoge" value=""/> </form> </div> </body></html>
(function(){})() の代わりに - IT戦記関連 カップリングとか言われたのでのっかりコネタ。 (function(){ this; // object global })() new function() { this; // object object } (function(){})() thisがglobal(ブラウザだったらwindowオブジェクト) retu…
Firebugのコードを読んでから、apply廚になりはじめている。 var Foo = function() { this.name = "Foo"; this.foo = "foo"; this.hage ="foo"; } var Bar = function() { this.name = "Bar"; this.bar = "bar"; this.hage = "bar"; } var Hoge = function()…
YUIのyahoo.jsとdom.jsをcreateElementしてdocument.body.appendChildしていくときに、IEだとYAHOOがundefinedでエラーになるという現象が時々発生する。これって、先にappendしたyahoo.jsより、dom.jsが先に評価されていないと起こらないはず。 それで、ふ…
最近、ブログパーツに特化したJSフレームワークを作りはじめている。 んで、createElementなんかでscriptをloadした時とか、いちいちタイミング調整したりしてごにょったりするのが、嫌になって来たので、queueに登録しておいて定期的にチェックするようなの…
ベタでブラウザ判定しているJavaScriptのコードが嫌いだ。 なんで嫌いかと言うと、「判定しているブラウザには(意地でも)対応するけど、それ以外は知らねーよ。」というスタンスの表明に見えるからだ。 そして、そういうスタンスは、間違っているとは思わな…
某所が余りにアレだったので。Firefox限定。 javascript:(function(){ var elems = document.getElementsByTagName('marquee'); for(var i=0;i
あとで読む。 [あとで書くかも]
Shibuya.esの後のバカ話をふと思い出したので見てみたら、こんな感じでメソッドが付いてた。 $('foo').init(); $('foo').start(); $('foo').stop(); $('foo')._doMove(aSkipSettingNewPosition); メソッド叩いたら、普通に止まったり動いたりしたので、Fireb…
ちゃんと作らないからいつも適当。 Safariでもconsoleのformatterを使わなかったら落ちずに行けるみたい。 var DEBUG = true; if(DEBUG && typeof console == 'undefined') { var elem = document.createElement('div'); elem.id = 'debug-console'; elem.st…
console.log入れっぱなしだったら、Safariが落ちるってのを何処かで読んでいたことをすっかり忘れてて、ド嵌りしてた。 ソース読み直して、入っているのに気がついて、消したら大丈夫になった。 もうちょっとデバッグ系上手くハンドリング出来るような何かを…
スピーカ、スタッフの皆様お疲れ様でした。 中継してくださったi-revoさん、ウタゴエさんありがとうございました。 ご来場・視聴者の皆様、ありがとうございました。 今回初参戦だったわけですが、場の空気を事前に読めていなかったので、ものすごいアウェー…
http://shibuyajs.org/articles/2007/03/09/shibuya-js-technical-talk-3-shibuya-es itik!
いつも仕事で、他所様のJSに影響与えないようにとか悩んだりするんだけど、どうするのがベストかなあ。 はまちちゃんがiframeが良いって言ってて、確かにざっくり試してみたら、Prototype汚染しないし、親frameのオブジェクトとか全く見えないけど、frameset…
htaccess使えない人は、こういうことやればいいのかな? var Tinycafe = {}; Tinycafe.toppage = 'http://localhost/~kazuaki/tinycafe/'; Tinycafe.deny = [ 'http://localhost/~kazuaki/tinycafe/denied.html' ]; Tinycafe.allow = []; Tinycafe.check = fu…