javascript

google の検索結果で、文字切りされているタイトルをフル表示する Greasemonkeyスクリプト

需要があるかは謎ですが、title属性にもフルのタイトルが入ってなくて微妙だと思ったので。 google の検索結果で、タイトルが長いと途中で文字切りされている場合があります。 例えば、このブログの記事だとこれとか。 こういう文字切りをしている場合は、リ…

JSON.parse に渡せるJSON文字列が厳密すぎて使いにくい件

JSON文字列をオブジェクトに変換してくれる JSON.parse() を使ってみたが、 かなり使いにくく感じた。 というのも、 JSON.parse("{hoge: 1}"); // error これがSyntaxErrorになる*1 JSON.stringify() が厳密なJSON文字列をくれるらしいので、 どう書けばよか…

html5 の File API を使って、ローカルのテキストファイルを読み込んでみる

とっても簡単です(Firefox 3.6 で動作を確認)。 html fileのアップロードフォームにonchangeを仕込んでおきます。あとは、読み込んだファイルの内容を表示するtextareaを用意。 <html> <head> <meta charset="utf-8"> </head> <body> <input type="file" onchange="read(this)" /> <hr /> <textarea id="text" cols="80" rows="20" wrap="off"></textarea> </body> </html>…

オブジェクトのプロパティの存在確認方法メモ

1.単純に obj.property で確認すると・・・ var obj = {}; if (obj.hoge) alert('not exist'); obj.hoge = false; if (obj.hoge) alert('exist false'); obj.hoge = null; if (obj.hoge) alert('exist null'); obj.hoge = undefined; if (obj.hoge) alert(…

Stringのおもしろメソッド

おもしろというか、単に自分が知らなかっただけかもしれませんが。 'hoge'.big() // '<big>hoge</big>' 'hoge'.small() // '<small>hoge</small>' 'hoge'.bold() // '<b>hoge</b>' 'hoge'.italics() // '<i>hoge</i>' 'hoge'.blink() // '<blink>hoge</blink>' 'hoge'.strike() // '<strike>hoge</strike>' 'hoge'.sub() // '<sub>hoge</sub>' 'ho…

html5で videoの任意のフレームをcanvasに描画するメモ

デブサミ2010のhtml5セッションで見たデモ(Movement tracker)*1 が、 衝撃的だったので video x canvas をちょっと勉強した。 1.videoの任意のフレームをそのままcanvasに描画させてみる htmlのbodyに書くにはこれだけ。 <video id="v" src="video.ogv" autobuffer controls></video> <canvas id="c"></canvas> <input type="button" value="copy frame" onclick="copyFrame()" /> copy frameボタン…

IEだと、style.borderを空値にしてもデフォルトに戻してくれない件

フォーカスされたinput要素をハイライトし、フォーカスが外れたら元に戻すという よくあるフォームを作ろうと思い、以下のようなコードを書いたら、 Firefox3.5 や Chrome4 では思うように動いたが、IE8では駄目だった。 <p>↓↓input↓↓</p> <input type="text" onfocus="this.style.border='solid 2px #69E'" onblur="this.style.border=''" /> <p>↑↑input↑↑</p> onfocus時は何…

tableの列と行を固定するIEのCSS(expression)をJSで書き直そうとしたけど無理だった

テーブルの列と行を固定したい場面があったので、そのメモ*1。 ググって簡単に出てくるのが、Super Tables というJavaScriptのライブラリだったが、 テーブルの幅や高さを任意の大きさに、任意のタイミングで変えたいという用途には、 向かなそうに見えた。 …

小数点xx桁で四捨五入する toFixed() の使いにくいところ

なぜ、戻り値が文字列なのか。 var num = 123.456; alert(typeof num); // number num = num.toFixed(2); alert(typeof num); // string toFixed後に、値を表示するだけなら別に良いけど、 さらにその後、計算を続けるには、わざわざ数値化してあげないとい…

DateのgetTime省略と、Math.floorを使わない切捨て計算

ニコニコのJSを眺めていたら、おもしろいコードがあったのでメモする。 マイページで読み込まれるmy3.jsの236行目*1 var ts = new Date/1000|0; まず、new Date/1000 。 getTime() を書かなくても、勝手にミリ秒にしてくれるとは知りませんでした。 >>> new …

親要素がdisplay:noneかどうかを、子要素で確認する方法

<div style="display:none;font-size:14px"> <p><span id="child">子要素(正確には子孫要素)</span></p> </div> こんな感じのhtmlがあったときに、display:none が指定されてるdivを見ずに、 id="child"の要素から、自身が表示されているのかどうかを判別したい。 普通にstyleを見ても当然ながらわかりません。 >>> alert(document.getElemen…

日付のvalidate

入力文字列が存在する日付かどうかを判定する こんな感じでどうだろう function validDate(str) { var ymd = str.split('/'); // 年月日のデリミタでsplit. var y = ymd[0]; var m = parseInt(ymd[1],10) - 1; // 0 paddingされてる文字列を整数に. "09" => …

aタグ要素の href 参照

メモるほどのことでもないけど、a.href だと勝手にフルパスにしてくれる。 http://example.com/dir/ というページだとする。 (ブラウザはFirefox3とIE8で確認) <a href="/hoge" onclick="alert(this.href)">hoge</a> >> http://example.com/hoge <a href="hoge" onclick="alert(this.href)">hoge</a> >> http://example.com/dir/hoge hrefに入っている値がそ…

はてブのRSSを表示する mixiアプリを作ってみた part.2

前回( はてぶのRSSを表示する mixiアプリを試しに作ってみた)できなかった、 Owner設定の永続化をGoogleAppEngine(JSONP)を使ってやってみた(コードは一番下)。 canvasページ はてなのIDを入力するテキストBOXがあり、 設定済みのIDフィードをその下に表示…

input要素からの親form参照

this.formで参照できることを知らなかったのでメモ。 <form> <input type="button" value="button" onclick="this.form.submit()" /> </form> わざわざnameとかidとか指定しておかなくていい <form name="form1"> <input type="button" value="button" onclick="document.form1.submit()" /> </form> <form id="form1"> </form>

javascriptで日本語文字の種類(漢字・ひらがな・カタカナ)を判別するためのメモ

(※) PDFは重いものもあるので注意 漢字 CJK統合漢字:http://www.unicode.org/charts/PDF/U4E00.pdf CJK統合漢字拡張A:http://www.unicode.org/charts/PDF/U3400.pdf CJK統合漢字拡張B:http://www.unicode.org/charts/PDF/U20000.pdf CJK互換漢字:http://…

IE8ブラウザ判別

IE8は標準モードと互換表示モードでユーザエージェントが変わってしまうようです。つまり、 if (navigator.userAgent.indexOf("MSIE 8.") != -1) alert("is IE8"); else alert("isn't IE8"); これでは互換表示モードのときに判定を間違えます。 そこで、IE8…

Googleの検索結果ページに「もしかして」を登録できるサービス『人力もしかして』を作った

説明するまでもないGoogleの「もしかして」ですが、 (「apachi」で検索) jinriki_moshikashite.user.jsこのGreasemonkeyスクリプトを入れて、Googleで検索すると、 (「apache」で検索)こんな感じで、ユーザがその検索キーワードに対して登録した「もしかして…