javascript
https://github.com/miya2000/jquery_lazyload/commit/a739355d631209f0e482f7523dbc436aac05dba4Togetter でとトギャられたページを下までスクロールすると重くなっているのを確認しました。たしか Chrome, Firefox だとそれほどでもなかった気がしますが、…
jQuery 1.4.4 の document.querySelectorAll を使う部分で、属性値をクォートする(ような)コードが入っています。 (L.4084) // Make sure that attribute selectors are quoted query = query.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); うーん、なんで必…
iPod みたいに曲のタイトルがスクロールして止まるようなコードを書いたんですが、チラつきが気になって調査したところ、どうもフォントカラーで違いがあるようなのでテストページを書いてみました。http://miya2000.jottit.com/jsmarquee 「ちらつく」と言…
http://miya2000.jottit.com/tapper元ネタは id:brazil さんの keyTapper 。下にホイールする時に同時にマウスを下に動かしてホイールすると、ホイールした間隔でスクロールし続けます。「ホイール→マウス下移動→ホイール」な感じです。 マウスを横に動かす…
position: fixed はおもいにゃー。 (function(){ var ns = document.getElementsByTagName('*'); var count = 0; for (var i = 0, len = ns.length; i < len; i++) { var n = ns[i]; var s = document.defaultView.getComputedStyle(n,''); if (s.position =…
コードはこんな感じ。 javascript:(function(){ var ifr = document.createElement('iframe'); ifr.src = 'data:text/html;charset=utf-8,%3Chtml%3E%0D%0A%3Cbody%3E%0D%0A%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0D%0Awindow.addEventListener(%22…
vender prefix の付いた CSS プロパティを JavaScript から設定する方法をど忘れしてたのでメモ。 Specifies or retrieves how the width and the height of the element are calculated. It affects the height and width properties. In Internet Explorer…
method chain (function(){ function chain() { } chain.prototype = { alert: function(value) { alert(value); return this; } }; new chain().alert(1).alert(2).alert(3); })() function chain (function(){ function chain(value) { alert(value); retu…
元ネタ: 知り合い「とりあえず検索するじゃん。そのとき、候補が出てくるから楽でいいんだよねー。あと、ニコニコ動画ってログイン必須じゃん、パスワードとメールアドレス打つの大変。」 http://d.hatena.ne.jp/amachang/20100406/1270525216 それ、Google…
単純な特定文字列の存在確認をするのに indexOf と正規表現でどれくらい差があるのかなと思って、次のようなコードを書きました。 (function(){ var a = [], n = 10000; for (var i = 0; i < n; i++) { a.push('item:' + i); } var str = a.join('\n'); var …
JSのコメント削除って簡単に書けないかなあ。文字列リテラルとか正規表現リテラルまで考えるとなあ。 http://twitter.com/miya2000/status/11177757376 とつぶやいたところ、有志が実装を投げてくれました。 - まずわたし。最初は「正規表現一発でいけるんじ…
文字列とバイト配列を相互に変換する CharsetEncoder という JavaScript ライブラリを書きました。 GitHub - miya2000/CharsetEncoder: JavaScript charset encode/decode library. お試し用のスクリプト。 (function(){ var later = 0; if (!window.__tests…
Opera 10.50 で document.selection が使えなくなったので window.getSelection も使うように書いてみました。 alert( (function f(w){ var d=w.document,q,t,i=0,r=d.selection,s=r&&(r.createRange()||i).text; if(!r){ s=w.getSelection()+'',q=s||d.quer…
(function(){ var acme = {}; if (this.acme == null) this.acme = acme; /// ---------------------- /// /// !!! acme.ByteArray !!! /// /// ---------------------- /// acme.ByteArray = function ByteArray(n) { if (!(this instanceof ByteArray)) re…
function Child() { this.name = "child"; this.favorite = "popsicle"; } (function(methods) { methods.apply/*to*/(Child.prototype); }) (function() { this.jump = function() { alert("Jumps, jump, jumpoo!!"); }; this.sayOwnFavorite = function() …
LiveConnect は、JavaScript から Java クラスなどのメソッドを呼べる機能を既存の Java の機能を利用して提供するアプリケーション作成用のインターフェースの名称です。 https://developer.mozilla.org/ja/LiveConnect 他の参考リンク https://developer.m…
javascript:new(Date) スペースがなくなってウレシイ。 - そもそも Date なら new いらないじゃん。 javascript:Date() - Date() と new Date() は型がチガウヨーとツッコミが。。。 javascript:(new(Date)).getFullYear()
(function(){ var df1 = document.createDocumentFragment(); df1.appendChild(document.createElement('A')); var df2 = document.createDocumentFragment(); df2.appendChild(df1); alert(df1.firstChild && df1.firstChild.nodeName); // null alert(df2.…
ちょっとしたシャレのつもりが少しずつ問題にぶつかったりで長々としたものに。。。 (おかげで他のスクリプトのバグを見つけた。)【コント】パスワードが伏字になる機能 bookmarklet: javascript:(function(){var a,d=document,t=d.evaluate('/\/text()[cont…
(function(){ function x(p,c) { return (function(e){return new Array(e.snapshotLength).join(',').split(',').map(function(a,b){return e.snapshotItem(b)})})(document.evaluate(p,c||document,null,7,null)) } alert(x('/\/a')); })() .join(',').spl…
(function(){ function a() {alert('a')} function b() {alert('b')} function c() {alert('c')} window.addEventListener('click', a, false); window.addEventListener('click', b, false); window.addEventListener('click', c, false); window.addEventL…
今更だけど FizzBuzz に制限をつけると面白かった。元ネタ 【問題】1から100までの数を表示するプログラムを書け。 ただし3の倍数のときは数の代わりに「Fizz」と表示。 5の倍数のときは「Buzz」と表示。 3と5両方の倍数の場合には「FizzBuzz」と表示すること。解…
DOM Level 2 Traversal の挙動を確認するページを作成しました。Traversal Testhttp://miya2000.up.seesaa.net/test/traversal_test.htm 気づいた点 Firefox3 には NodeIterator が実装されていない。まあ TreeWalker が NodeIterator の機能を内包してるか…
ほとんど「Prototype.js 1.6.0 の変更点」の焼き直しなんですが、自分の言葉で書きとめておくのもいいかと思い、エントリにしました*1。 目次 Function#argumentNames() Function#bind(thisObj, arg0, ...) Function#bindAsEventListener(thisObj, arg0, ...…
先日の「配列からn個の要素を重複無しでランダムに取り出す」の del.icio.us コメントより。 配列を後ろから埋めていく処理はOperaで実行するとやたら時間がかかったような気がします。 BNJ http://del.icio.us/url/6144e2f982e69a940e7ab74d8c319d78 うっそ…
真っ先に思いついたのはコレ。 function random(array, num) { var a = array.concat(); // clone. var r = []; var l = array.length; var n = Math.min(num, array.length); while(n-- > 0) { var i = Math.floor(Math.random() * l--); r.push(a[i]); a.s…
「yyyy/MM/dd HH:mm:ss」 javascript:alert(function f(d){return d<60?('0'+d).slice(-2):d.getFullYear()+'/'+f(d.getMonth()+1)+'/'+f(d.getDate())+' '+f(d.getHours())+':'+f(d.getMinutes())+':'+f(d.getSeconds())}(new Date)) function 2つ書いたら…
即興ですが。(position:fixedを理解しないブラウザ不可) (function(){ var d=document,l=location,f=document.createElement('form'); f.style.cssText='position:fixed;padding:5px;background-color:white;border:#1E90FF solid 1px;top:40%;left:40%;z-in…
(function(){ var fr = document.createElement('iframe'); fr.src = 'about:blank'; fr.style.display = 'none'; document.body.appendChild(fr); var d = fr.contentWindow.document; d.write('<html><head><base href="http://d.hatena.ne.jp/miya2000/20080120/p0"></head><body><a href="hoge.html"></a></body></html>
大量の input 要素を一旦文字列にして、Excel 等で編集した後にまた戻すというやつ。かなり手抜き。とりあえず文字数制限のある IE 向けに作ったんで機能はかなりショボいです。textarea 等、input 要素でないものには未対応。タブや改行が値に含まれるもの…