javascript

jQueryのIE6のバグを報告したら有名なIE6のバグと言われた件

個人的にはIE6なんてもう対応する気もないんだけど、そういう分けにもいかずハマったので、検証コードを書いてみた。それでも再現するので、これはjQueryのバグかと思い報告してみたら(closed bug: cantfix)を頂きました。 This is a well-known issue with …

ChromeのUser Scriptを手抜きで書いてみた

ChromeはOperaの様にUser Scriptとして、Greasemonkey的なスクリプトが拡張機能無しに動かせるんだとか。そう話だけは聞いていて、ちょっとやりたい事が出てきたので書いてみました。 とりあえず書く (function(){ console.log(document); })(); ただ普通にJ…

jsdo.itでjQueryの最新1.7を読み込んでみた

htmlタブ http://jsdo.it/kanonji/jHPW javascriptタブ console.log($().jquery); alert($().jquery); http://jsdo.it/kanonji/jHPW jsdo.itで用意されてるjQueryは、今のところ1.6.2までで、最新の1.7を使えません。そこで、上記の様にhtmlタブにscript要素…

inline-blockで横に並べた時に入る隙間をJavaScriptでなんとかする

display: inline-block;は便利だけど、無対策でHTMLをマークアップすると意図しない隙間が開いちゃいます。それを避けるためにHTML上に改行を含めずマークアップするんですが、JavaScriptで解決する方法も有りかもしれないと思いました。きょうびJavaScript…

jQueryでsubmitイベントを一旦止めて、非同期してまた動かすの難しい

$('form').submit(function(){ $.getJSON('url') .done(function(result){ if (result) { //この場合はsubmitしたい(A) } //この場合はsubmitしない(B) }) .fail(function(jqJHR){ //失敗したらsubmitしない(B) }); //一旦submitイベントは止める(C) e.preve…

JavaScriptのDateクラスでのISO8601とUNIXタイムスタンプについて

YoutubeとFlickrのAPIから受け取ったJSONを扱っててちょっとつまづきました。動画や写真の投稿日時に、YoutubeではISO8601が、FlickrではUNIXタイムスタンプが使われていて、そのままDateクラスに渡したところInvalid Dateとなりました。 解決方法 ISO8601 n…

JSONとJSONPのContent-typeに書くMIMEタイプ

ファイル 正しいMIMEタイプ RFC IE用 json application/json http://www.ietf.org/rfc/rfc4627.txt RFC通り jsonp application/javascript http://www.ietf.org/rfc/rfc4329.txt text/javascript JSONの場合はapplication/jsonだけど、JSONPって実体はコール…

Web storageのセキュリティ設定はCookieの設定が兼ねている?

最近CakePHPのドキュメントであるCook bookがリニューアルしました。右上にClear Local Cacheと書いてあって何かキャッシュをしてるぽいのでソースを見てみたら、Web storageのlocalStorageを使ってます。そういえばWeb storageやHTML5*1ってよく知らないな…

jQuery.getJSON()で別ドメインのJSONPなデータを読み込む時の注意

jQuery.getJSON(url, data, callback); $.getJSON(url, data, callback); jQuery1.2以降で、かつAPI側が対応*1していればですが、jQuery.getJSON() で別ドメインにあるJSONPデータを読み込めます。 JSONPを返すAPIというのは、どこかに仕様があるのか暗黙の…

console.log()などが使えないブラウザで、取り急ぎJavaScriptを動作させたい時のコード

if (typeof window.console != 'object'){ window.console = {log:function(){},debug:function(){},info:function(){},warn:function(){},error:function(){},assert:function(){},dir:function(){},dirxml:function(){},trace:function(){},group:function…

JavaScript で DOMContentLoaded や onload を使う理由、の備忘録

JavaScript を scriptタグで書く際、JavaScript の処理と html のパースは同じ時間の流れで進みます。 大抵は scriptタグを headタグ内に記述するため、いきなり DOM でアクセスしようとしても、body ですらパースされていません。 html のパースが終わって …

主にアクセス解析用のscriptタグはどこに書くべきか、よく忘れるのでメモ

<script> //アクセス解析用のコード </script> </body> </html> Google Analyticsなどのアクセス解析用のコードは、上記の様にの直前に書くのが良いとされています。 htmlとJavaScriptは共に上から処理されていき、scriptタグが書かれた所でJavaScriptが実行されて、その分だけページの表示…

数学の対数関数(log)を復習したのでメモ

/** * 必要な桁数まで0を埋める。 * @param number 桁数 * @param size 桁数 */ function fillZero( number, size ) { if ( number < 0 ) throw "illegal argument."; var s = number != 0 ? Math.log( number ) * Math.LOG10E : 0; for( i=1,n=size-s,str="…