JavaScript

【Perl】【JavaScript】Perlのローカル変数宣言myとlocalについて

最近、Perlコードを読まなければならなくて、苦戦しているw。これまで使ってこなかった言語だから。 さて、その中で、myという変数宣言があった。これはたしかローカル変数の宣言の際に使用したはず。記憶がおぼろげだったのでぐぐってみた。Perl入門の16章…

スクリプトによるIE自動操作

IEを起動して、必要事項を入力するといったルーチン作業が面倒なので、スクリプトを作成すべくいくつか検証。以前作成した、GoogleMap上で位置情報の付与されたtweetを検索するアプリでは、地名と検索範囲を入力して検索するので、「地名の入力」、「半径の…

Google Closure Compilerを使ってJavaScriptファイルを最適化してみる

そもそもClosure Compilerとは。JavaScriptをコンパイル??? 下記は、GoogleのClosure Compilerのページからの引用。 What is the Closure Compiler?The Closure Compiler is a tool for making JavaScript download and run faster. It is a true compile…

GoogleMapのマーカー毎に吹き出しを表示しようとしたら最後の1つしか表示されない

Google Mapプログラミングをして、Google Map のマーカー毎に吹き出しを表示しようとしたが、最後の1つしか表示されない。 for(var index in data){ // 2.直前で作成したMarkerOptionsを利用してMarkerを作成 marker = new google.maps.Marker(markerOpts)…

本当に苦労したSpringでの文字化け問題

Spring MVC + Thymeleaf + HTML + JavaScriptでtwitterをGoogle Mapに表示するアプリを作っていたが、tweetをGoogle Mapのmarkerに表示したところmarkerに表示されるtweetの日本語が文字化けした。 以前、Thymeleafで文字化けした際は、servlet-context.xml…

Thymeleafを使うとJavaScriptのfor文が書けない?

謎のエラーに悩まされている。JavaScriptでfor文を書いていた。 どういうわけか、for文の「 for(var index=0; index < dataLength-1; ++index){ var markerOpts = null; var marker = null; 全く分からん。。。と思っていたが、思い出した。以前、「Thymelea…

Spring MVC でjQueryのAjax関数を使用する1 〜 JSON作成にGSONを使用する

引き続きベースは「Spring MVCのサンプルプロジェクトでViewの描画をthymeleafテンプレートエンジンによるものに変更する」から続いているもの。これまでは同期通信で画面遷移を伴うものだったが、今は画面遷移を伴わずに非同期通信を行ってデータだけを取得…

久しぶりの簡単Google Mapプログラミング

久しぶりにGoogle Mapを使うことになりそうなので、復習。 久しぶりというのも酷くて、前回使用したのは、もう8年前だろうか。もはや覚えていない。試したのは下記4つ。 1.地図を表示する 2.特定地点にマーカーを表示する 3.表示したマーカーにマウス…

(function($){})(jQuery)と$(function(){})と$(document).ready(function(){})について

先日のエントリー「jQuery 〜 なんだか動作が違う」。 どこが間違っているのかに直ぐに気づかずに悩んだ。大分恥ずかしいけど、悩んだのでメモ。問題は次の3つの書き方のいずれにも同じ動作を期待したのだが、2番目の書き方だけ期待した動作をしないこと。1…

最近読んだ本・読んでいる本・これから読む本

まずはWEB+DB vol63。Web開発の「べし」「べからず」は知っている内容が多かったので、流し読み。特集2のpixivが明かす段階的サービス拡張が面白かった。インフラの知識は恥ずかしいくらい持ち合わせていない私だが、楽しく読めた。同時に、インフラの学習…

selectBox内に文字が収まらない場合、選択時に幅を変更する

<select name="名前" class="test"> <option>ラベル1aaaaaaaa</option> <option>ラベル2</option> <option>ラベル3</option> </select> <script type="text/javascript"> $(function(){ var origWidth; $("select").mousedown( function(){ origWidth = $(this).css('width'); alert(origWidth); $(this).css('width', 'auto'); } ).bl…

window.historyとwindow.locationについての個人的メモ

現在表示しているページのURLはwindowオブジェクトのlocationプロパティに保存されている。 例えば、http://lochttp://wbs-newworld.appspot.com/hashStudy.htmlにアクセスした場合、window.locationの値は「http://wbs-newworld.appspot.com/hashStudy.html…

JavaScript 〜 自己定義関数について復習

関数を繰り返し実行する場合、2回目以降の実行では必要のない処理を繰り返すべきではない。そのような繰り返しを防ぐために、自己定義関数を用いる。例えば、引数を定数倍して返す下記の関数を考える。 var selfDefinedFunc = function(param){ var constNum…

JavaScript 〜 コンストラクタ関数について復習

最初に、コンストラクタ関数とは、「オブジェクトのプロパティを初期化する関数で、new演算子と一緒に使われる」とJavaScript第5版に書いてあった。 new演算子が新しいオブジェクトを生成し、そのオブジェクトをthisキーワードの値に設定した後、コンストラ…

HTML5新機能のデモ一覧ページ

このブログでは自分でHTML5の新機能を実装して、何ができるのかを試している。しかし、Remy Sharpが作成した「機能一覧とデモをまとめたページ」があるので、手っ取り早く機能一覧を確認したい場合は、そちらを利用する。

HTML5新機能 〜 canvas要素でグラデーション

グラデーション機能を試してみた。グラデーションを付ける部分のコードは下記。 $gradientId.click(function(){ grad = ct.createLinearGradient(20,20,180,180); grad.addColorStop(0, 'rgb(255,0,0)'); grad.addColorStop(0.5, 'rgb(0,255,0)'); grad.addC…

HTML5新機能 〜 canvas要素

HTML5の新機能の1つ「canvs要素」を試してみた。 例によって検証アプリを作成して、試した結果が下図。作成するのは簡単だが、ボタンをクリックするたびにcanvas描画領域を初期化する方法が分からなかったので、そこはメモしておく。まず、canvasで描画する…

JavaScriptのthisを理解する

thisについて、恥ずかしいことに1つ勘違いして理解していた点があったので、自分の中で頭を整理した。まず、thisを一言で説明すると、次の通りだ。 thisとは、関数内ではthisを使用中の関数をメンバに含むオブジェクト*1を指し、トップレベルコード*2ではグ…

子画面から親画面のjQuery関数を実行する

jQuery内部で下記のようなことをしているので、できるでしょうと思いつつ試してみた。 できた。 当たり前か・・・。 var jQuery = window.jQuery = function( selector, context ) {・・・・ ■親画面 <script type="text/javascript"> var mode = 0; ( function($) { $.testFunc = function(</script>…

jQueryで非表示状態と表示状態を切り替える

単純なメモ。jQuery非表示状態にあるものを表示する場合は、show()メソッドを使用する。 逆に、 表示状態にあるものを非表示にする場合は、hide()メソッドを使用する。 //非表示状態のものを表示状態にする $("showButton").click(function () { $("p").show…

changeイベント発生のタイミングについて

Changeイベントとは、msdnの解説では次の通り説明されている。 テキスト ボックス、またはコンボ ボックスのテキスト部分の内容が変化するときに発生します。また、タブ コントロール内でページ間を移動したときにも発生します。 これを読んで私は誤解をして…

HTML5 vs ネイティブ。モバイルアプリはどちらで開発するべき?

すでにご存知の方も多いかもしれないが、Google I/O 2011で「HTML5 versus Android: Apps or Web for Mobile Development?」というセッションがあった。私は半年ほど前から、Androidアプリはネイティブアプリで作成する必要はないのではないのかと思ってきた…

一方のセレクトボックスの値によって、もう一方のセレクトボックスの値を変化させるJavaScript

ちょこっと、暇つぶしに作ってみた。 実は今まで自分で作ったことが無かったことは秘密だ。 <html> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <head> <script type="text/javascript" src="/javascript/lib/jquery-1.5.2.js"></script> <script type="text/javascript"> $(document).ready(function(){ document.getElementById("opti…</head></meta></html>

clickイベントとfocutoutイベントとblurイベントの実行順について

■IE8の場合 focusoutイベント発生→blurイベント発生→clickイベント発生 ■chromeの場合 clickeイベントのみ発生 これはIEのバグなのか仕様なのか。「focusoutイベント発生→blurイベント発生」という流れはIEでもchromeでも共通なので気になることはない。問題…

Same Origin Policy(同一生成元ポリシー)について

Same Origin Policyを一言で述べると、こうだろうか。 JavaScriptには、生成元が同じオブジェクトにしかアクセスすることができない制限があること ここで、「生成元が同じ」とは、下記3つを満たすことだ。 1. ホストが同じ 2.プロトコルが同じ 3.ポー…

localStorageで保存されたデータのPCでの格納場所

前回のエントリーで、localStorageを使用して格納したデータは、明示的に削除しない限り、ブラウザを閉じても削除されないことが分かった。 つまり、アプリケーションが利用者に対して明示的にlocalStorageのデータを削除する仕組みを提供している場合か、も…

クライアント側での永続化について考えてみた〜cookieとlocalStorageとsessionStorage

当たり前だが、画面遷移をすると、javascriptの変数は消えてしまう。グローバル変数といえども、画面遷移をすると消えてしまう。画面遷移をしても、遷移する前のデータを利用するためには、下記2つの方法が考えられる。 遷移するタイミングでサーバへデータ…

jQueryの非同期通信関数$.ajaxを使用して、サーバ側でのファイルの作成とダウンロードを行う

やりたいことは、左図のようなこと。クライアントからリクエストを送り、サーバ側でダウンロードするファイルを作成(すでにある場合は加工)してクライアントへ返す(ダウンロード)といったこと。 同期通信の場合、クライアントからsubmitボタンを使用して…

cufonの使いどころは、CSS3の@font-faceが使えない場合。ただし、日本語は非対応だよ。

Netchさんのページに書いてありましたね。ChromeやSafari、firefoxではCSS3の@font-faceが使用できる。そのため、cufonを使わずとも、先日のエントリーで書いたように、適用したいフォントがPCにインストールされていなくても、@font-facesを利用してWebFont…

JavaScriptでWebページのフォントを変更するライブラリ〜cufon

自分でも綺麗なフォントを簡単にWEBページに適用できる方法がないかを調べてみたら、あった。Cufon Cufonについて、まとめてみた。 【Cufonとは】 ・フォントファイルをJavaScriptファイル(以下、JSファイルと呼ぶ)に変換し、適用したい箇所にそのフォントを…