7cc@はてなブログ

JavaScriptとかとか

event handler(1) 簡単なイベントハンドラのメモ

仕様書 Events - whatwg を読んだメモ GlobalEventHandlersとかWindowEventHandlersについて 普通の説明はいくつものサイトでされているので省略 DOM event handlers - MDN

ドットインストールのCSSを見るなら注意

*この記事の内容は古くなっている可能性があります。現状にそぐわない記述が含まれるかもしれません。 ドットインストールという動画でプログラミングを学べるサイトが結構?人気・評判のようだ。しかし、どうしても動画が良い、というのでないなら見ないほ…

CSS transition + display:none は子要素があれば出来る

CSS

あるいは親要素があれば。 方法 子要素でdisplay切り替え 親要素でtransition

a.download + data:text/plain or Blob でテキストを保存したら改行がLFになった

一行ならCRLF, 改行があるとLFで保存されて困った。 CRLFなので当然環境はWindows

FirefoxでGistやgoogle-code-prettifyをコピーしたときのインデントを正常化する

Gistやgoogle-code-prettifyをコピーした時のインデントを見た通りに直す

Firefox 開発ツールのJavaScriptショートカット関数

FirefoxのWebコンソールとScratchpad(スクラッチパッド)で使える$x, $0, $, $$

選択中文字列の取得 ブラウザによる違い

getSelection.toString() と getSelection.getRangeAt(0).toString() の違い。JSで選択状態にある文字を調べる方法の互換性について。

Quirks Mode (互換モード) - document.compatMode

document.compatModeで得られるレンダリングモード(描画モード)とJavaScriptについて。主にQuirksモードでの違いについて。

Google Chromeの略称 - Chrome? GC? GChrome?

Google Chromeをなんと呼ぶか 2単語にしなければ統一された呼び方をされたのになあ。Chrome?GC?

関数式と関数宣言の優先順位 JavaScript

基礎事項 2つの違いについての説明は最低限のみします 構文 関数宣言(declaration) function x() {} 関数式(expression) var x = function(){} 本当は違うけれど・・・詳細はFunction コンストラクタか関数宣言か関数式か "関数宣言は同時にその関数名と同じ…

dlリストの簡易記法 dl,dt,ddをMarkdownで使いたいと思ったけれど

まず、Markdownでは標準でdlリストの記法は存在しない。 Markdownには派生版がいくつか存在し、dl,dt,ddがMarkdownで使えることもある(多くの場合は使えない)。 tableも元のMarkdownでは使えない。しかしこちらは多くのMarkdownで使える。 ならば、dlも使…

Windows 等幅フォント一覧

見本はありません 理由1: ソフトによって見え方が変わるため。ソフトによっては独自に字幅を調節するものがあり、同じフォントでもソフトによって見え方が変わります。 理由2: 心が折れるため。画像を撮ろうと思うと量が多いです。

attachEventとonclickのthis

今更IE8情報。

$(_window).animate

$(html, body).animateの代わり $(window).animate じゃなく $(_window).animateなんです...

リンクの点線を消す, ボタンの点線を消すCSS

概要 a, a>img をクリックした際の点線を消す。 button, input[type=button], input[type=submit]の点線の消し方もついでに。 つまり、フォーカスのある要素の点線の消し方について キーワード hidefocus, outline, ::-moz-focus-inner demo no dot for link…

JavaScriptでヒアドキュメントもどき 改行を扱う

追記 ES6から使えるようになった、Template stringsを使おう。 Template stringsdeveloper.mozilla.org var str = ` line1 2 3 ` 以下は古い情報。

【IE8でも】無名関数をremoveEventLitener

IE9以降(=addEventListenerが使える)ならhandleEventで出来るので不要。 IE8も含めた場合。 名前をつければいいだけなので無名関数をremoveEventLitenerしたい時なんてあるのか疑問ですが。

element.addEvent の順で書く その2

addEventListenerとattachEventを両立するよくある話。 前回書いたのがいまいちに思えるので 理想 なるべくaddEventListenerと同じ順で書きたい(けどaddEventListenerってそもそも長い!) 複数の要素相手にforループもいちいち面倒なので省略したい 複数のイ…

ソースコードをワンクリックで選択

preタグの中を全選択したい時がある人向け。 *IE9以上 追記: GoogleChrome(webkit)ではボタンのテキストも選択されてしまうので修正 @ 2013/07/24 これの利点 はてなに限ればGistなどの貼り付けで良いが、userscriptとして使えばMDNなど他のサイトでも使え…

はてなのシンタックスハイライトに行番号をつける

追記: 2015/06/18 gistには行番号を追加しないようにした。 2014/07/03 1行のみかつシンタックスハイライト無しのpreでエラーがあった。 スーパーpre, markdownで表示したソースに行番号を表示する。 というかpreタグに行番号を表示させるだけなのでどこでも…

GoogleChromeでdispatchEventが思い通りに動かない JavaScript

document.createEventで作ったイベントがGoogleChromeだけ異なる動きをする。 対処 createEventは実行する関数の中で作るようにする。 関数の外で作ると GChrome - 動かない(一回だけ動く?) IE, Firefox - 動く 確認コード documentをどこでもいいのでク…

this === window // false JS

thisがwindowにならない時 Firefoxで開発者ツール使用時 スクラッチパッド、コンソールなどを使用しているとfalseになる。 IE, GChromeではtrueになる strict mode時 undefinedになる

Googleなどのインタレストベース広告のオプトアウト

ターゲッティング広告が少し話題になっているようなので(便乗) Protect My Choices というアドオンを利用するだけです。他のクッキー管理アドオンでもいいですが、なぜかこれは日本語のサイトで紹介されていないので。 リンク先の「I agree to the Terms o…

pushStateは同じ履歴を追加する

pjax サンプル で検索するといくつかpushStateを利用したページが出てきますが、どれもその対策をしていない。。。 大抵リンククリックでpushStateしていますが、同じリンクを続けてクリックするとその分だけ同じ履歴が追加されます。意図していないなら直す…

論理演算子でどちらもfalse扱いになる場合は、最後のものが返る JavaScript

var a = 0 || false var b = false || 0 alert(a) // false alert(b) // 0 これ自体はそれほど重要ではないと思われるが、例えば 0.a = "a" はエラーになるが、 false.a = "a" はエラーにならない

スムーズスクロールの「戻る」を正常化する JavaScript

1.history.pushStateが使える場合 それで解決。IE10以上のすべてで使える。 *移動後に location.replace("#" + target.id) でハッシュを活性化?しないとtarget疑似クラスが有効にならないのでそれだけ注意。 location.hash = target.idだとGChromeで:target…

scrollTopMaxを取得する JavaScript

element.scrollTopMaxは現在Firefoxだけにあるプロパティで、要素の最大スクロール可能量を返す。読み取り専用。window.scrollMaxYのelement版。 これは他のブラウザなら element.scrollHeight - element.clientHeight で求められると思っていたが違った。 …

clearInterval(timer) のtimerは数字

var timer = setInterval(fn, 100)のtimerは何なのかと思ったら数字だった。この数字はsetInterval/setTimeoutが実行されるとインクリメントされ、スコープに関わらずwindowで共通。 以下のコードで確認できる。 (function(){ var timer = setTimeout(functi…

Firefox 開発者ツールバーのJavaScript整形機能

Firefoxには標準でjs-beautifyと同じ整形機能がついている。 F2で開発者ツールバーを開き、「jsb」と入力すればあとは案内に従うだけ。 特徴として、オンライン上のファイルでも、ローカルファイルでもURL/パスを指定すればで整形できることがある。 使い方 …

配列のすべてにアクセスする記述いろいろ JavaScript

document.getElementsByTagNameとか配列(風)のもの全てになにかしたい時にi