JAVASCRIPT

IAM Fox

https://bitbucket.org/winebarrel/iam-fox とりあえず一覧を表示するところまでできました。

関数内関数はよいですね

Elasticfoxをいじっている関係でJavaScriptをまた触りだしたのですが、関数内関数はよいですね! 昔はびみょーにトリッキーな感じがして避けていたのですが、今は「似たような処理だから関数にまとめたいけど、クラスのメソッドだとスコープが広すぎる…」と…

sticky.jsをbitbucketに上げました

http://winebarrel.bitbucket.org/sticky.js/

『ウィキペディア⇔アンサイクロペディア』ブックマークレット

javascript:(function(){var l=location.href;var w='ja.wikipedia.org';var u='ja.uncyclopedia.info';var u2='ansaikuropedia.org';var rw=new RegExp(w);var ru=new RegExp(u);var ru2=new RegExp(u2);if(l.match(rw)){l=l.replace(rw,u);location.href=l…

getElementsByClassName

FirterがFirefox3で動いていなかったので調査。 「...getElementsByClassName('...').each(...」とかで落ちてた。 そういえばFirefox3でネイティブのgetElementsByClassNameが追加されたんだっけ…ということで、次のように修正。 「$A(...getElementsByClass…

prototype.js: bindで部分適用

Function#bind()で部分適用できることを同僚に教えもらった。 ちまちまと使ってみているが、イベントリスナの登録時にElementを関連付けられるのがちょっと気に入っている。 var element = $('foo'); element.observe('click', function(foo, event) { // 「…

マウスで画像のサイズを変更

http://storehouse.sakura.ne.jp/resizable/resizable2.htm 以前作ったResizableで画像のサイズも変更できることに気がついた。 そのうち使うかな?

スムーススクロールを実装してみた

http://storehouse.sakura.ne.jp/sscroll.html function sscroll() { var element = document.getElementById('foo'); var duration = parseInt(document.getElementById('duration').value, 10) var interval = 10; var offset = 0; var length = element.s…

ShallowTree(作りかけ)

shallow_tree.js shallow_tree.css Example JavaScriptのTreeViewライブラリを探したけど、よさげなのがないので、自作中。

Resizable

http://storehouse.sakura.ne.jp/resizable/resizable.htm これ見て「すごいなー」と思ったので、prototype.jsで実装してみた。 Operaだとイマイチな動作。 <html> <head> <script src="prototype.js" type="text/javascript"></script> <script type="text/javascript"> var Resizable = Class.create(); Resizable.prototype = { initialize: function(element…</head></html>

auto_pagerize.js

auto_pagerize.js サンプル こちらのページを見て、ランキングのAutoPagerize的I/Fに感動したので、自作してみた。

scrollbar.js

こないだ書いたやつをライブラリ化。 Operaは未確認。 scrollbar.js example

JavaScript製のスクロールバーを作った

http://storehouse.sakura.ne.jp/scrollbar.html もとネタはここ。 ライセンスと使い方がよく分かんないので自作。 <html> <head> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> ScrollBar = Class.create(); ScrollBar.prototype = { initialize: function(element) { this.bar = $(element); this.bar.…</head></html>

JavaScript製のスクロールバーを作った その2

※ライブラリ化しました http://storehouse.sakura.ne.jp/scrollbar.html ついでにホイールにも対応してみた。 Operaで動くかは不明。一応、動くようにした。 <html> <head> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> ScrollBar = Class.create(); ScrollBar.prototype = { initialize: function(element) { this</head></html>…

Sticky Plus!: Operaでポップアップメニュー

http://storehouse.quickvps.net/sticky_plus/sticky/board?url=http%3A%2F%2Fd.hatena.ne.jp%2Fwinebarrel%2F OperaでもCtrl+左クリックでポップアップメニューを出せるようにした。 コードはこんな感じ。 var contextmenu_listener = function() { ... }; …

Operaでtextarea.readOnly = true

IMEをオンすると読み込み専用でも入力できてしまう…

sticky.js: 簡易フォーマットとか

こんな感じの文法をサポート。 [del:あいうえお] // => <del>あいうえお</del>あと「Sticky#read_only(flag)」を追加。 sticky.js sticky.css サンプル

sticky.js: URLと画像のオートリンク

ひょっとして鬱陶しいかも。 sticky.js sticky.css サンプル

ドメイン越え

http://www.drk7.jp/MT/archives/001011.html なんだ、scriptを使えばよかったのか…orz

scriptでドメイン越え

http://storehouse.sakura.ne.jp/foo.html 新規作成も出来るようにした。 ソースコードは以下のような感じ。 function ajax_request(method, options) { var hidden_script = Builder.node('script', {id:'sticky_plus_hidden_script'}); var url = '<%= url…

sticky.js: テキストエリアのスクロールバーを非表示に

より付箋紙らしくなった気が。 sticky.js sticky.css サンプル

link: Internet Explorer に Table.innerHTML を設定しているエラー

http://support.microsoft.com/kb/239832/ja メモ。

link:JavaScriptな日々 | 改行コードをに変換する

http://m035.blog61.fc2.com/blog-entry-4.html メモ。

link: ブラウザのスクロール量を取得するには? | Diaspar Journal

http://diaspar.jp/node/47 メモ。

unique.js

ftp://ftp.mozilla.org/pub/mozilla.org/js/ RhinoのR6のプレリリース版をぼけーっと眺めてたら、unique.jsのコードが面白かったのでメモ。 defineClass("File") var f = new File(arguments[0]); var o = {} var line; while ((line = f.readLine()) != nul…

link:for ループでの配列長の括り出しは JavaScript でも有効か

http://webos-goodies.jp/archives/51166928.html 配列が束縛する変数のスコープによって差が出るんじゃないかな…と思って、IEで試してみるけど、あんまり変わらず。うーん。 - Microsoft Internet Explorer - total: 106078 [ms] - name: local(direct) %: …

apply...

この記事をなんとなく眺めていて「そういえばapply使えばレシーバ変えられるんだっけ…withいらなくね?」と思ってサンプルコードを書いてみるも、関数ではthisが必要なことに気づく…orz とりあえず書いたコード。 <html> <head> <title>TEST</title> <script type="text/javascript" src="profiler.js"></script> <script> function sample_nothing() { var </head></html>…

あとで調べる: 自分の名前を知る

自作プロファイラである関数をプロファイルするのに「Profiler.profile('nothing', sample_nothing);」といちいち名前を付けるのがいけてない感じなので、関数が自分の名前を知る方法を考えてみる。あとで。 メンドクサイことになるだろーなー。

sleep()…

setTimeout()で処理を遅延して、実行されるまでの間、入力をブロック。 …うーん。

getElementById()を計ってみる

なんとなく遅いと思っているgetElementById()だけど、「なんとなく」はよくないな…と思って計ってみる。