Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
はじめに 「新はてなブックマーク」になったということで、とっても便利になったのですが、ブックマーク一覧ページ*1が若干 JavaScript に時間が掛かっているみたいです。 というわけで 調査してみたいと思います。調査して、改善できそうなところは後で纏めて「はてなアイデア」にでも登録しようと思います。 この日記は調査しながら、過程を書いていくつもりです。 準備 まずは、人のサイトの JavaScript を書き換えて試してみるための環境を作ります。 作業用ディレクトリを作る とりあえず、ホームに HatenaJS というディレクトリを作ります。 $ mkdir HatenaJS $ cd HatenaJS CocProxy をダウンロードしてくる 以下から CocProxy というツールをダウンロードしてきます。 http://coderepos.org/share/wiki/CocPr
このエントリは、IE8での変化点一覧 + 備忘録 - latest logの続きです。 IE8モードで、CSS expression が無視される。 バグ回避や、max-width などを実装するため必要不可欠だった expression 構文は廃止される。 ただし、IE7モードとQuirksモードでは下位互換性のため使用可能。 <style> .title { color: expression((new Date()).getHours() % 2 ? "#B8D4FF":"#F08A00"); } </styl> CSS2.1に準拠するために、ベンダー独自プリフィクス("-ms-")が追加された 以下のCSSプロパティには先頭に "-ms-" を追加する必要がある(互換性のためつけなくても動作はするが非推奨)。 -ms-accelerator -ms-background-posit
var isKnownTagName = function() { var cache = {}; return function(tag_name) { if (tag_name in cache) { return cache[tag_name]; } var ret; try { ret = document.createElement(tag_name).constructor != HTMLUnknownElement; } catch(error) { ret = false; } return cache[tag_name] = ret; } }(); isKnownTagName('a'); // true isKnownTagName('xxx'); // false isKnownTagName('&%$'); // false
HTML DOM APIWindowインスタンスプロパティcachesclosedconsolecookieStore Experimental credentialless Experimental crossOriginIsolatedcryptocustomElementsdevicePixelRatiodocumentdocumentPictureInPicture Experimental event 非推奨; external 非推奨; fence Experimental frameElementframesfullScreen 非標準 historyindexedDBinnerHeightinnerWidthisSecureContextlaunchQueue Experimental lengthlocalStoragelocationlocationbarmenubar
JavaScript でいろいろな日付の計算関係をまとめてみました。前回の日付関係のまとめエントリの JavaScript版です。 日付の単位について 基本的なことですが、一応まとめておきます。 1秒は1000ミリ秒 1分は60秒 1時間は60分 よって 1時間=60分=3600秒=3600000ミリ秒 1日=24時間=1440分=86400秒=86400000ミリ秒 現在時刻の取得 まずは、最もよく使う処理です。 //今日の日時を表示 var date = new Date(); document.write(date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.get
setIntervalは、登録したcallback関数のthisがおかしくなったり、callback関数に値を渡すのが面倒臭かったり(値を渡すにはsetIntervalの第三引数を使えばいいけど、それだと引数が固定されちゃう)、タイマーのidが、setIntervalの戻り値にしか渡されないから、callback関数内でclearIntervalするためには変数に保持しなきゃいけなかったり、少し不便。 var timer = { loop: function(fn, ms, v) { var self = this, id = null; return id = setInterval(function(n) { v = fn.call(self, v, id, n); }, ms); }, one: function(fn, ms, v) { var self = this, id =
追記:bodyにmarginとかpaddingとかが取ってあっても平気なように、documentElement全体にstyleを当てるようにした。 ブックマークレット版: javascript:(function(){document.documentElement.style.cursor='-moz-grab';var g,x,y,r=/input|textarea|button|select|a/i;addEventListener('mousedown',function(e){if(r(e.target.tagName))return;g=1;document.documentElement.style.cursor='-moz-grabbing';x=e.clientX,y=e.clientY;e.preventDefault()},0);addEventListener('m
先日の「配列からn個の要素を重複無しでランダムに取り出す」の del.icio.us コメントより。 配列を後ろから埋めていく処理はOperaで実行するとやたら時間がかかったような気がします。 BNJ http://del.icio.us/url/6144e2f982e69a940e7ab74d8c319d78 うっそだーwwwそんなことあるはずないよwww javascript:(function(){function bench(f) {return function() {var start = new Date();f.apply(null, arguments);alert(new Date() - start + ' (ms)');}}var num = 30000;bench(function(n) {var a = new Array(n);for (var i = 0;
var foo=123; <>変数fooは{foo}です。</>.toString();//"変数fooは123です。" {や}という文字を入れたい場合は、実体参照にするか、CDATAセクションに入れる必要がある。{}内には、変数だけじゃなくて式とかも入れられる。 文字列を数値文字参照にするブックマークレット: javascript:void prompt('コピーしてください',Array.map(prompt(),function(c)'&#'+c.charCodeAt(0)+';').join('')); 数値文字参照を文字列にするブックマークレット: javascript:void prompt('コピーしてください',prompt().replace(/&#(\d+?);/g,function(i,str)String.fromCharCode(str))); 速度について。 c
配列からn個の要素を重複無しでランダムに取り出す - m2 後の二つ三つ目は一様にならないし,重複する可能性もあるような。 function shuffle(a, n){ // Fisher-Yates var r = a.concat(), l = r.length, n = n < l ? n : l, i = l, j, t; for(i = l; i;) t = r[j = Math.random()*i--|0], r[j] = r[i], r[i] = t; r.length = n; return r; } 証明済みのアルゴリズムで愚直にやるとこうなるけど,n と a.length の差が大きいときに損するか。 + 勘違いに気付いてみると,元ネタの二つ目はまさに損しないやり方。自分--。
widgetをドラッグして位置を変更する事ができます。 タイトルバーをダブルクリックする事でwidgetをたたむ事ができます。 タイトルバー右のボタンをクリックしてwidgetを閉じる事ができます。 タイトルバー左のボタンをクリックしてwidgetの設定を変更する事ができます。 widgetの設定には、現段階でwidgetの固定方法があります。 widgetの固定方法は、ブラウザの表示領域のどの角を基準にしてwidget位置を固定するかを選択できます。 widgetをたたむ時、表示されたままになるタイトルバーの位置はwidgetの固定方法に依存します。 ブラウザのウィンドウやタブ間でwidgetの位置を同期します。 setting widgetでDockの表示位置を変更できます。 Dockに表示されているアイコンをクリックすることで、widgetの表示/非表示を切り替える事ができます。 G
JavaScriptによる、Unicode規格のNormalizeを行うライブラリをリリースしました。 (はじめてCodeReposを使わせていただいてます) コードはこちら↓ http://coderepos.org/share/browser/lang/javascript/UnicodeNormalizer ドキュメントとデモはこちら↓ http://svn.coderepos.org/share/lang/javascript/UnicodeNormalizer/index.html テストはこちら(実行に10分くらいかかります)↓ http://svn.coderepos.org/share/lang/javascript/UnicodeNormalizer/test.html 使い道ですが、日本語圏だと主にユーザの文字入力を正規化するのに使うんじゃないかと思います。多くのサービ
8 March 2022 by Danny Yao in Blog By supporting the Opera Crypto Wallet, Dapp developers can gain access to millions of crypto users on Opera platform. To do so, Dapp developers need simply add a few lines of code to set up integration with the Opera Crypto Wallet. 23 January 2019 by Daniel Bratell in Blog Opera 58 (based on Chromium 71) for Mac, Windows, Linux is out! To find out what’s new for u
This is a test of the Javascript EXIF library posted here. Click the images to see it in action. The first image tests reading single tags, while the other two simply show all available data. The binary file access happens in binaryajax.js and the EXIF data reading happens in exif.js. Also check out the jQuery plugin, if you're into that sort of thing!
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く