Javascript

iOSのSafariでSSLのページ中のlocation.hrefのURLがSSLになっていない時の対処法

iPhoneなどのSafariでhttps://foo.bar/にアクセスしているのに http://foo.bar/のようにURLがhttp://になってしまう際の対処法 console.log(location.href);// http://foo.bar/のようにURLがhttp://で始まってしまう 若干無理やりですが、正規表現でhttp:で…

JavascriptをつかってAndroidのwebviewから標準ブラウザやChromeを起動する

Androidのwebviewから標準ブラウザやChromeを起動したい場合、 インテントを送る際scheme=httpと設定someurl.orgを開く場合 window.href="intent://someurl.org#Intent;scheme=http;action=android.intent.action.VIEW;end"; ただしこのままだと、標準ブラウ…

JavascriptでUserAgentを取得する

ブラウザによってJavascriptの挙動を変えたいときなどに、UserAgetを取得する方法です。 window.navigator.userAgentから取得できます。 var ua = window.navigator.userAgent; if( ua.indexOf("iOS") != -1 ){ console.log("user agent is iOS!!"); }

node.jsが早くもv4.1.1になっていました

このあいだio.jsとの初の統合バージョンv4.0.0が出たばっかりですが node.jsが早くもv4.1.1になっていました。セキュリティ関連の修正が入っているようなので、 4.1.0を使っている人はアップデートしたほうが良いらしいです。This release contains some min…

node.jsでjQueryのDeferredを使う

node.jsでasyncが使いづらいのでjQueryのDeferredを使えるようにする。jquery-deferred npm install jquery-deferredあとは $ = require('jquery-deferred');とすれば同じようにつかえます。 var delay = function(){ $ = require('jquery-deferred'); var d…

javascriptで数字の0埋め(padding)をする

数字の「12」を「012」のように0埋めたい時String.prototype.slice()をつかって var num=12; result = ("000"+num).slice(-3);// "000"+"12" -> "00"+"012" -> "012" のように一旦埋めたい文字列を先頭に連結して後ろから必要な分、部分文字列を切り出すと実…

CentOS6にphantomjsをインストールする

yumでビルドに必要な依存するライブラリを入れておく sudo yum -y install gcc gcc-c++ make flex bison gperf ruby \ openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel \ libpng-devel libjpeg-devel phantomjsのビルド git clone…

Javascriptで手軽にdeep copyする

下記のように一度JSON.stringify()でjsonの文字列にしてからJSON.parse()でobjectに戻すと 簡易的にdeep copy、つまりcloneできる。 var clonedList = JSON.parse( JSON.stringify(l) ); 実装shallow copyとdeep copyの比較サンプルコード var list = [0,0,0…

window.onload = function(){};みたいなコードはよしたほうがよいとおもいますた

こんな風にwindow.onload = function(){}を複数回書くと'proc1'の処理は実行されない window.onload = function(){ console.log('proc1'); }; /* some process... */ window.onload = function(){ console.log('proc2'); };// onload event has overwritten …

ブラウザのJavascriptでinclude的なことをするやつをつくりました

最近JavascriptでincludeしたいけどRequireJSほど大掛かりじゃなくてっていう 需要が某所であったので、勢いでつくってついでにgithubにもうpしました。使い方 <script src="include.js"></script> という具合にライブラリを普通に読み込んでincludeJS.load('includeしたいjsファイル', jsが読…

Underscore.jsでオブジェクトや配列のソート

Undersocre.jsでオブジェクトや配列をソートしたいとき、 sortByをつかいます。まず公式にのってる基本的な例 _.sortBy([1, 2, 3, 4, 5, 6], function(num){ return Math.sin(num); }); // => [5, 4, 6, 3, 1, 2] 各要素のメンバでソートもできます var item…