JavaScript

firebugの計測関数(console.time/console.timeEnd)を自動挿入

firebugの計測関数(console.time/console.timEnd)をつかってメソッドの実行時間の計測するときなどに、計測関数を挿入忘れと削除忘れしないために自動的に挿入するためのコードです 開発のときには、ブックマークレットで呼び出しておいて使うと便利かも(し…

fx7でresizeTo/resizeBy/moveTo/moveByがno longer apply to main windowな件

タイトル通りです。fx7からresizeTo/resizeBy/moveTo/moveByがメソッドとしては定義されていますが動作しなくなりました…。じゃなくて、no longer apply to main windowになりました。 これ系... window.resizeTo(width, height); window.resizeBy(width, he…

Greasemonkeyでjquery-uiを使うときのスニペット

jquery-uiを@requireしてもエラーで怒られたりするのでよく調べたらこんなんでいけるらしい。 // ==UserScript== // @resource jquery http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js // @resource jqueryui http://ajax.googleapis.com/…

JavaScriptで複数人開発するときのガイドライン(マイルール)

JavaScriptで複数人開発するときのガイドライン(マイルール)です。SIerとかやっているとold JavaScriptやらモダンJavaScriptを見たりと色々な経験が得られるわけで…。やっぱり複数人開発するときには秩序は必要だなと思って、大体こんなルールにしていまし…

漢数字をアラビア数字に変換とか(突貫工事)

漢数字をアラビア数字に 一か八かとか、万が一。百子(人命)とか機械的に変換してしまわないように、一桁の数字は排除して漢数字をアラビア数字に変換するプログラム。突貫工事。 (JSで実装したんだけど欲しいのはPerlのプログラム...。) ソース "フランス料…

ProgressEventの使い方が分からない件

あるけど使い方わからない>< WebKit系 for(i in ProgressEvent.prototype){ document.write(i, ','); } initProgressEvent,MOUSEOUT,preventDefault,FOCUS,CHANGE,initEvent,MOUSEMOVE,AT_TARGET,stopPropagation,SELECT,BLUR,KEYUP,MOUSEDOWN,MOUSEDRAG,B…

window.toStaticHTML()

IE8からwindow.toStaticHTML()メソッドが追加されました。引数に与えられたHTMLの断片からscriptタグや、onclick属性などのDynamic HTMLの要素を削除するためのメソッドです。 XDomainRequestのレスポンスに、意図しないscriptタグなどが入ってきたときにま…

IE8で採用されたconstructorプロパティ

constructorが実装されている件 alert('constructor' in window); // true alert(window.constructor); // [object Window] div = document.createElement('div'); alert('constructor' in div); // true alert(div.constructor); // [object HTMLDivElement…

IE8でもEventオブジェクトのとり方は一緒

Eventオブジェクトのとり方 とりあえず現行通りに、window.eventオブジェクトでいけるらしい。ここは、IE路線を貫くのね…。 検証コード <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> </html>

localStorageとsessionStorage

IE8からどうやらlocalStorageとsessionStorageに対応する模様。これらStorage系のオブジェクトは、WHATWGのWeb Application1.0仕様のClient Side Storageを実装したものだということを祈ります。ドキュメントは、この辺で(HTML Standard)、簡単に言うと、ブ…

Chromeのconsoleオブジェクトとデバッグ

Chromeには、consoleというデバッグに便利なオブジェクトがある。9月4日(木)時点でのconsoleオブジェクトには、error, info, log, warnメソッドがあるようで利用方法は、Firebugのそれに近い。 ソース string = "Hello World!!"; object = {}; object.foo = …

IE8β2のHTMLDivElementのそれ

取得方法 <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=8" > </head> <body> <div id="hoge"></div> <script type="text/javascript"> var hoge = document.getElementById("hoge"); for(i in hoge){ document.write(i, ', '); }; </script> </body> </html> 結果 nextSibling, onresizeend, onrowenter, ariaP…

Chromeのnavigatorオブジェクト

navigator appName Netscape plugins [object PluginArray] language ja-JP vendorSub platform Win32 mimeTypes [object MimeTypeArray] productSub 20030107 appVersion 5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) …

Chromeのグローバルオブジェクト

globalオブジェクト external, Node, Rect, name, Event, Text, Range, status, closed, parent, frames, Entity, opener, screen, length, scrollX, scrollY, UIEvent, Comment, screenY, Element, screenX, history, toolbar, CSSRule, console, document,…

winow.onhashchange

名前から察しの通りlocation.hashが変更になったタイミングで動作する関数。初期値はnull。 alert(window.onhashchange); // null sample.html <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=8" > <script type="text/javascript"> window.onhashchange = function(){ alert(location.hash); }; </script> </head> <body> </body></html>

IE8でのXMLHttpRequestオブジェクトの行方

XMLHttpRequest alert("XMLHttpRequst" in window); // true ついでにActiveXObjectも alert("ActiveXObject" in window); // true ちゃんとwindowオブジェクト配下に隠れていた。よかった。

IE8β2のdocumentオブジェクト

namespaces, lastModified, onstorage, parentNode, onstoragecommit, nodeType, fileCreatedDate, onbeforeeditfocus, bgColor, oncontextmenu, onrowexit, embeds, scripts, onactivate, mimeType, alinkColor, onmousemove, compatible, onselectstart, o…

clientInformationとnavigator

clientInformation appCodeName, appName, appMinorVersion, cpuClass, platform, plugins, opsProfile, userProfile, systemLanguage, userLanguage, appVersion, userAgent, onLine, cookieEnabled, mimeTypes, navigator appCodeName, appName, appMinorV…

IE8β2のグローバルオブジェクト

status, onresize, onmessage, parent, onhashchange, defaultStatus, name, history, maxConnectionsPerServer, opener, location, screenLeft, document, onbeforeprint, screenTop, clientInformation, onerror, onfocus, event, onload, onblur, window,…

Kana.JSをgooglecodeへの移行

JavaScriptで全角英数字を半角英数字に変換したりするライブラリー(Kana.JS)をgooglecodeにおきました。ついでに、ActionScript3に移植しています。型付けがありながらJavaScriptのコードをコピペしても利用できるAS3が好き。 URL コミット先:GitHub - shog…

JavaScriptと高階関数

高階関数とは? 高階関数(こうかいかんすう、英: higher-order function)とは、プログラミング言語において、関数を引数にしたり、あるいは関数を戻り値とするような関数の事である。引数や戻り値の関数もまた高階関数となり得る。これは主に関数型言語や…

ANTとYUICompressor2系

そろそろYUICompressor2系でもAntできるようにしないといけないと思って以前書いたYuicTask.classをYUICompressor2系に書き直しました。 使い方 path/to/jarに utiljs.jarとyuicompressor.jarを一緒に保存 独自タスクの定義の例 <taskdef name="yuic" classname="org.coderepos.utiljs.taskdefs.Yuic"> <classpath> <fileset dir="path/to/jar"><include name="*.jar"/></include></fileset></classpath></taskdef>

Array#spliceの引数省略

引数省略で困った件 var a = [0, 1, 2, 3, 4]; var b = a.splice(3); IE7とfxでArray#spliceの引数を省略すると挙動が異なる件。上記のように書くとaとbの値がIE7とfxのそれとは異なる。 ブラウザ a値 b値 IE7 [0, 1, 2, 3, 4] [] fx [0, 1, 2] [3, 4] ECMA…

innerHTMLでスクリプトする為のバッドノウハウ

ところで jQuery#html()にscriptを突っ込んでもJSを実行してくれます。document.writeを利用するとひどいことになりますけど(--; $("#foo").html("<script>alert('Hello');<"+"/script>"); innerHTMLでscriptする為の方法 document.getElementById("foo").innerHTML …

valueOfとtoStringの列挙

IEの場合 for(i in {valueOf:function(){},toString:function(){}}{ alert(i); }; IEでは上記のようにDontEnum属性のものを上書きしてもDontEnumが継続するというバグがあります(仕様?)。つまり、上記の場合では、valueOfやtoStringがalertされないというこ…

jQueryでテンプレート処理

jQueryプラグイン jQueryでテンプレート処理を行ってみたくてjQueryのプラグイン作成の勉強がてらテンプレート処理プラグインを制作してみました。テンプレートエンジンはお馴染みのJSmartyです。 利用例 <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="JSmarty.js"></script> <script type="text/javascript" src="JSmarty/Compiler.js"></script>

JavaScript Archive Network復活。

http://d.hatena.ne.jp/shogo4405/20071124/1195904976 でかいたJSANのドメインがあれれっ?な問題点。今日、アクセスできるようになっていること確認できました。アドレスは通常通りhttp://openjsan.org/です。これを機にJSANに盛り上がって欲しいと思う今…

JavaScriptでArray.fill

Array.fill 配列の初期値を指定する方法の処理速度検証 (Kanasansoft Web Lab.)について。 Arrayをnullで初期化したい以外ではこれで要件を満たせるのかな…。速度はベンチマークをとっていないので分からない。evalは生理的に嫌いなのでnew Funciton(Functio…

object=clone(object);

世の中にはdeep cloneの需要がある 僕もある。某ライブラリで実装せにゃならない。スマートな方法は思いつかず。永遠ループでまわしつづけています。この前見つけたネタのエントリ。 404 Blog Not Found:javascript - お伺い - Object.prototype.clone() htt…

JSAN.js消滅にみる自作ライブラリ

追記 12月14日時点アクセスできること確認いたしました。http://openjsan.org/復活という奴でしょうか。 消滅ですか??? JSAN消滅 - 檜山正幸のキマイラ飼育記の記事で知ったのですがJSANが消滅したそうで驚きしましたCPANみたいなスタンスだったんで僕も好き…