JavaScript

Google Chrome の Extension 書いて詰まったりおっと思ったりしたところ

今朝、クロネコさんの荷物問い合わせ結果画面をリロードしつつ「配達中」ステータスになるのを待っていたら、なんかこれは人間のやることじゃないぞと思い立ち、 Chrome の Extension を書きました。 それがこれ、クロネコヤマタブルです。 しかしこの Exten…

IE11 を IE7 または IE8 モードで動かした時、特定条件下で ActiveXObject の typeof がおかしい

code https://gist.github.com/oogatta/7208821 <html> <head> <script src="test.js"></script> </head> <body> </body> </html> var isFunction = function(object) { // only with 'typeof' return typeof object == 'function'; }; // run in one thread. piled up karma var result = ''; for ( var i…

iOS7 の Safari はゆるふわな HTML に厳しい

こんなゆるふわでファウルな HTML があったとしまして <html> <head> <meta charset=utf-8 /> </head> <body> <div id="firstunko"> <p id="unko">unko</p> </div> <div id="secondunko"> <p id="unko">unko</p> <p id="unko">unko</p> <p id="unko">unko</p> <p id="unko">unko</p> <p id="unko">unko</p> </div> </body> </html>

Windows8 の「リフレッシュ」機能を使った後、 IE10 や Silverlight がおかしいときの原因(のその一つ)

一昨日書いた、IE10 で JavaScript から localStorage を使おうとすると「アクセスが拒否されました( Access is denied )」エラーで実行時エラーになる問題 - oogattaの勉強日記に id:sakurai_youhei さんからコメントいただきました。ファイルの権限の問…

IE10 で JavaScript から localStorage を使おうとすると「アクセスが拒否されました( Access is denied )」エラーで実行時エラーになる問題

追記 Windows8 の「リフレッシュ」機能を使った後、 IE10 や Silverlight がおかしいときの原因(のその一つ) - oogattaの勉強日記コメントでアドバイスいただいた内容でフォローアップ書きました。 ここからもともとの本文 ずっと前から悩まされていたこの…

外部 grunt タスク( grunt プラグイン)を作るとき

タスク grunt の自作 task は Gruntfile.js 内に好きに書けるし、別ファイルに書いておくのも簡単( grunt.task.loadTasks )。 プラグイン タスクを別リポジトリで管理したいなあと思ったとき、その別ファイルを git の submodule にしても良いのだけど、公…

bfcache について覚えて帰ってもらいます。(転載)

動作サンプル消しちゃったの直しました。以下の内容は、『 mixi Engineers' JavaScript Advent Calendar 2012 』の12月19日分として投稿したものの転載です。内容に差異はありません。 bfcache について覚えて帰ってもらいます。 こんばんは。日々、一体お兄…

Canvas に Base64 の画像を差し込む時も image の onload を待つ必要がある

タイトルの通りなんですけども…。 var image = new Image(); images.src = "data:image/jpeg;base64,..."; var canvas = document.getElementById("c"); var ctx = canvas.getContext("2d"); ctx.drawImage(image, 0, 0); はダメで、 var canvas = document.…

ドキュメントモードと IE7 と JScript エンジンの機能がよくわからない(だれかおしえて)

昨日の記事を書いたとき、一応少しはテストしてみるかと思って、実際に手元の IE7 と IE8 で動かしてみたんです。そしたらなぜか IE7 でもネイティヴ JSON オブジェクトが存在するわけですよ。わけがわからない。これは間違いなく IE8 から実装されたもので…

IE7 が死んだらできるいくつかのこと( caniuse.com から見繕っただけ)

IE6 への対応が一段落した昨今、 IE7 もいよいよ事実上市場から姿を消す日が近づいてきたようです。flickr が今年以降リリースする新機能にて IE7 をサポートしないことを表明しました。私の勤務先でも、今ものすごい勢いで IE7 のシェアが低下しており、今…

詳細 ECMA-262-3 第3章 this

目次 はじめに 定義 グローバルコード上の this 値 関数コード上の this 値 Reference 型 関数呼び出しと非 Reference 型 Reference 型と null の this 値 コンストラクタとして呼び出された関数での this 値 関数呼び出し時に手動で this を指定する 結論 …

詳細 ECMA-262-3 第2章 変数オブジェクト

目次 はじめに データ宣言 様々な実行コンテキストにおける変数オブジェクト グローバルコンテキストにおける変数オブジェクト 関数コンテキストにおける変数オブジェクト コンテキストコード処理のフェーズ 実行コンテキストへの進入 コードの実行 変数につ…

詳細 ECMA-262-3 第1章 実行コンテキスト

訳者によるまえがき 私が以前、「コア・JavaScript ( JavaScript. The Core. )」と題して、 ECMAScript に関する Dmitry Soshnikov さんのすばらしい記事を翻訳させていただいてから、1年が経ってしまいました。継続して Dmitry さんの記事を訳していくとお…

ECMAScript の(構文上の)ごく基本的な構造

とてつもなく基本的なことでありながらいつも忘れてしまうのでここにメモしておく。Program → Statement → Expressionが基本的な流れ。これ以外の代表的な要素としては…。 Block は Statement の下。さらに Statement を含める(複文を作れる)。 Expression…

コア・JavaScript ( JavaScript. The Core. )

この文章は、 Dmitry A. Soshnikov さんの、 ECMAScript に関する優れた記事 "JavaScript. The Core." を許可を得て翻訳したものです。世の中に、 JavaScript のブラウザ API や、実装系に関する記事は多々あれど、 ECMAScript の仕様に則って、ここまで詳し…

ECMA3 での OOP 思考実験

型仙人と恐れられた私も、さすがに ECMA3 の仕様をちゃんと読んだら考えが変わってきた。 ECMA3 が提供する OOP に使えそうな主な特徴 動的な具象オブジェクトベースの prototype チェーン 動的なオブジェクト 静的なスコープチェーン それぞれの主な使い途 …

今日の驚き ECMAScript

※だれかはてなダイアリーで角括弧二つの連続 [[Unko]] をちゃんと出す手法教えてください…。今、わざわざ a タグで囲ってる始末…。 new new といえば JS の OOP のキモ中のキモ。 new って何してるの?というと…、http://bclary.com/2004/11/07/#a-13.2.2こ…

カンマ演算子と VariableDeclarationList

不思議だった ECMAScript 3 で僕がずっと不思議に思っていたことが今日 kzys 先生に教えてもらって解決したので書き留めます。 var i=0,j=0,k=0; よくこういう書き方をしますよね。僕はこのカンマをずっとカンマ演算子のカンマだと思って、カンマ演算子だと…

今日の知っ得まる得 ECMAScript

ECMAScript の名前解決は Scope チェーンと Prototype チェーンの2次元探索です。 詳しくは、 [[HasProperty]] 内部関数の仕様を見るとよく分かるぜ。ちなみに、 [[Prototype]] 内部プロパティは実装系によっては __proto__ として実装されていますので読み…

今日の知っ得まる得 ECMAScript

ECMAScript の Execution Context ECMAScript の Execution Context の項は読めば読むほど味わい深い大変なごちそうなのでありますが、ここをもにもにと読んでいたら知らなかったことがあったのでメモ。ECMAScript の Excecution Context には3つのタイプが…

focus, blur は W3C 的にも bubbles=no

DOM0イベントの focus と blur はバブルアップしてきません http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-htmlevents-h3ブラウザのバグではなく、仕様的にそうなってます。うーん。ちなみに bubble = no は... load unload b…

引き続き JavaScript の話

たとえ型仙人とはいえ なんかといっちゃあすぐクラス作っちゃって1クラス1JSとかしてJSファイルをむやみやたらに増やしまくってサーバ管理の方々に大ひんしゅくな私ですけど、恐縮です。とはいえ、関数が一級オブジェクトであることのすごさみたいなものをギ…

あるおっさんの一日

型 みなさまお元気ですか。私は元気です。私はと言えば今の会社にお世話になり始めてからすっかり1年以上経ち、かなり当たり前顔をして歩き回っていますが毎日が大変恐縮となっております。 何が一番恐縮かと言えば、天才若手エンジニアのみなさまと一緒に J…

js2-mode と flymake

Emacs で JavaScript のシンタックスエラーを検出する/ありえるえりあ js2-mode Emacs になった 仕事場の開発環境がすっかり Emacs on Ubuntu on VirtualBox になったので、あきらめて Emacs で JS も書く。js2-mode 入れて、synaptic から spidermonkey 入…

JavaScript のエスケープ文字

IE=’\v’==’v’ @ Ajaxian 見ておおっ!と思ったので、エスケープ文字って実際何と何だっけ。ECMA-262によれば、\u から始まるユニコードエスケープ文字ではない一文字で表せるエスケープ文字は… \b バックスペース \t 水平タブ \n LF \v 垂直タブ \f FF/改ペ…

いつのまにか @require なんてものが。

require しても展開されるのは sandbox 側だったという当たり前の悲劇。 そんなこんなで Opera の User JavaScript はちょこちょこ書いてるんですが、Greasemonkey は入れてすらいなかったとふと気づき、入れたりブログ読んでたりしたら今は @require なんて…

Flickr の set なんかを流し見するための User JavaScript

デジタル一眼買った! オリンパスE-410レンズセットでにーきゅっぱ!やっほー。ということはまぁここでは全然関係なく、撮ったものそのままを Flickr はストレージですかというくらいに上げまくるのがやはりデジタル一眼所有者の悦びの一つであろうというこ…

今日知ったこと2点。

encodeURIComponent の URIComponent って何 ECMAScript の escape() は Version3 では deprecated で、代わりに encodeURI() と encodeURIComponent() を使うようにものの本には書いてあります。でも僕が愚かなあまり違いがわかっていなかったんですが、今…

WAI-ARIA クライアントサイド野郎向けまとめ

何これ Web Accessibility Initiative(WAI) が作った Accessible Rich Internet Applications(ARIA) のためのご提案。(X)HTML 上で動く RIA をターゲットにしているので当然 (X)HTML に属性を追加しようとするもの。※「HTML 文書をアクセシブルにする」ため…

Dojoでちょっとイベントと状態について勉強しようと思ったら。

でもその前に dojo の起動プロセスをソースで確認…。 Download から落とすとインデントとかコメントがすっかり削られるので svn で…。 dojo.js 実行環境を識別して(とりあえずrhino/spidermonkey/Jaxer/ブラウザをみてる)おく。 全環境共通のbootstrap/loa…

Dijitでちょっとイベントと状態について勉強しようと思った

dijit.js _Widget _Templated _Container layout._LayoutWidget form._FormWidget きたこれ。_Widjet.js と _Templated.js で当たり。読む。ちょうど大きい人が来たので相談した。「状態表みたいなものから UML 起こしてそれをそのままコードにできればいい…

第5回Ext JS/Ext GWT勉強会(10/29) Ext JS の日本支社、なのかしらないですが Ext Japan というのが出来るらしい。 XMLHttpRequest Level 2/Working Draft XHR2 の WD。 XMLHttpRequest Level 2 enhances XMLHttpRequest with new features, such as cross…

IE の select の onchange イベントは Bubbles=no

onchange Event タイトル通り。知らないで普通に delegation 使ったイベントコントローラ作ってたら死んだ。 むかっとなって、何かきっと美しいハックがあるんだとおもって、JavaScriptMVC のソースを見たらば、なんかふつーに click から疑似 change イベン…

V8

V8… 今日は最初の一時間を、近頃疎かにしすぎていた最新情報のキャッチアップに費やすことに決めたので、V8 のドキュメントをざっと読んだ。ためになった。こうなったら C++ やりたい。インターフェースだけ C++ で提供して、それを操作するのを JavaScript …

RollOutをください

mouseleave/mouseenter, rollOut/rollOver Flex には確か rollover/rollout と mouseover/mouseout が別にあって、IE にも mouseleave/mouseenter と mouseover/mouseout が別にあって、要するにそれが無くて mouseover/mouseout だけだとどうなるのかという…

RSH

Really Simple But Unko History JavaScriptMVC は要するにコントローラだけがなかなか切れ味の鋭いアイディアを形にしたシャープなアイテムであり、それ以外はだいたいどっかから持ってきたものの寄せ集めである。別にそれはいい。便利だし。そもそもRails…

良く忘れること

JavaScriptとは愛だ すでにプログラムができる男達にとって、JavaScript について覚えておくことは次の三つだ!これしかない!でもすぐ忘れる! this キーワードだけが、 prototype scope chain へと僕らを導く「唯一の」術だ 「設計図->設計図->設計図->生…

インテリ2

こんにちは、マイクロソフトから来ました。嘘です。 コード 前の会社で書いた JavaScript ライブラリは古くって臭くなっていたので、別に誰にあげるともなくそのまま辞めてきてしまったのですが、この度新しい会社で改めて JavaScript なんぞをごそごそと書…

JavaScriptMVC 2.0

時間が無いので殴り書き。Subversion の trunk から落とせる JavaScriptMVC 2.0 には、サイト自動生成・管理ができるGUI…というかXULアプリが付いてて、実行権与えて /jmvc/command.html を立ち上げるとワーオって感じなんですが(全然わかってなかった!別…

インテリ

高幡不動一インテリセンスが好きな男としては、Aptana のインテリ具合も確かめて見たかった。というわけで確かめてみた。 コード1 function ConstA() { this.prop_a = "prop_a"; this.prop_b = "prop_b"; } function ConstB() { this.prop_c = "prop_c"; thi…

Prototype Chain

久々に JavaScript の仕事をすることになりました。今は prototype.js やら jQuery やらほんとにいろいろあって何も考えずにやれば何も考えずにできるのでしょうが、いまいち何をしているのかわからなくて不安なのでソースを読んでいたら、Prototype Chain …

PPK on JavaScript

マストバイ!!!ppk on JavaScript (Voices That Matter)作者: Peter-Paul Koch出版社/メーカー: New Riders Press発売日: 2006/09/26メディア: ペーパーバック クリック: 2回この商品を含むブログ (1件) を見る

24 ways to impress your friends

数ヶ月ぶりに、溜まっていたWeb標準系のブログを必死で読み漁っています。かなり発展途上のジャンルなので、お仕事的な視点から見れば必死で付いていく必要は無いと思うけど、たまには追いついておかないと…。 24 ways to impress your friends 去年の12月に…

自動操作ツール

ブックマークレットでがんばる こないだまでもりもりと作っていたウェブアプリが稼働しました。良かった。それで、前回から使い回していたフォーム自動入力のブックマークレットさらに改良して、データをかなりランダムで入力できるようにしたりしました。こ…

prototype.js prototype.jsを読んでみる (1) わたくし地道に応援し続けるアリエルさんの開発ブログによる、prototype.js 解剖学。裏側は Zope/Plone らしいです。アリエルさん好きです。

IE/Jscriptのメモリ漏れ

Understanding and Solving Internet Explorer Leak Patterns @ MSDN IE, Closures, Leaks/James Mc Parlane's Blog Javascript Closures ここに書いてあったことはどうやら大きく間違っていたらしいので出直します。

今日のuser.js

主にJavaScriptと愛嬌でおまんまを食っている人間で、かつOperaがメインのブラウザである者の性として、大変にしょうがなく「エラー発生時にJavaScriptコンソールを開く」をオンにしているとちまちまちまちまとコンソール様がお開きになって細かなストレスが…

自転車乗ってばかりでさぼっていたらちょっぴり時代が動いていたようだ…。 JavaScriptライブラリ MochiKit 背景画像 Multiple Backgrounds/Surfin’ Safari なんとSafariさんは先走りに先走って背景画像の複数枚指定に対応したのだった。でも絶対便利。

Singleton on JavaScript

JavaScript singleton objects (and how to avoid polluting the global namespace) ためになるなぁ!。サンプルをもう少し「private」と「public」に強調して書くと…、 var MySingleton = new function() { var testVar1 = 0; //private var testVar2 = "un…

DOM(/JavaScript)もまた「ウェブ標準」です。

Gotta keep 'em separated The first is that just because something appears to be easier, doesn't make it the right tool for the job. In fact, there was probably similar excitement when the <font> tag was introduced to HTML: a quick and easy way t</font>…