JavaScript

文字列中の数字を全部インクリメントする

"1,2,3,456"という文字列を与えると"2,3,4,457"と返って来るスクリプトの例です。 function inclement() { var result = ""; var src = "1,2,3,456"; while (/[0-9]+/g.exec(src)) { var num = RegExp.lastMatch - 0 + 1; //数値変換手抜き result += RegExp…

相対座標指定のネストしたエレメントの絶対座標を取得する

せっかく書いた日記が綺麗さっぱり消えた・・・せっかく明日使えないマメ知識を不要な程盛り込んで書いたのに[登録する]ボタンを押したら「サーバが見つかりません」になって戻ってみたら綺麗に空欄になってた(涙)もう簡単に答えだけ var xy = YAHOO.util.Dom.g…

問題が次々と。。。

この間パフォーマンスで問題になったAjaxを用いた処理ですが、今度はメモリリークの問題にぶちあたりました。そこらへんにあるAjaxのライブラリはパフォーマンスとメモリリークの問題がかなりあってびっくりしてます。WEBに乗ってるデモを実行しているだけで…

Ajaxアプリのビジュアル開発ツール

マスカット http://itpro.nikkeibp.co.jp/article/NEWS/20060915/248264/こんな感じのアプレット版は実務で使った事がある。HTML書くより楽だったと思う。これは調べておこう。

IEのファンクションキーの動作をキャンセルさせる

function cancelRefresh() { // keyCode == 116 → F5 if (window.event && window.event.keyCode == 116) { window.event.keyCode = 8; } if (window.event && window.event.keyCode == 8) { window.event.cancelBubble = true; window.event.returnValue = …

チェックボックスに1つでもチェックが入っているかどうかを調べる

一覧画面で明細を選択して何か処理をする場合、ひとつもチェックされていなかったらメッセージボックスを出したい。そんな要件を満たすために今まで結構めんどくさい事をしてた。なにがめんどくさいってチェックボックスの個数によって処理を分けないといけ…

新しいウィンドウが開けないなぁ・・・

JavaScriptで新しいウィンドウを開く時にtargetに_blankを設定してるのに、なぜか同じウィンドウが開いてしまう。なんて障害が上がってきて、「それはありえないだろう」と思って動かしてみると本当に同じウィンドウで開いてる…って、良く見たら_brankって、…

昨日のAjaxの練習はこんくらいまでやってみようかな

こう書けたら良いなぁって思って書いたやつだから、実現可能性は未知数。呼び出しのコンポーネントを取得して、メソッドを呼び出してるあたりがAjax。でも非同期だから呼び出しと同時に戻り値受け取るのは無理があるんじゃ?(笑)遅延実行を実現できるんだか…

Ajax勉強終了

メーカー(大分類)・モデル(中分類)と絞り込むリストボックスを作ってみた。JavaScript側で書いたのはこれだけ。#追記:中途半端だったんでJavaScript部分を全部貼り付けました。とりあえずコードなのでIE専用。 //サーバにアクセスして戻り値をcallbackに渡…

Ajaxって奥が深い

サーバサイドの戻り値の返し方をどうやって楽ちんにしようかと考えていた。要求はサーバサイド(Java)の戻り値はPOJOがイイ。戻り値を受け取るJavaScript側のコーディングは極力減らしたい。これだけ。楽することばっかり(笑)戻り値はこうしようかと思ってい…

attachEvent?addEventListener?

たぶんこんな感じで判定できる。 var obj = "イベント登録対象オブジェクト"; if (obj.addEventListener) { //addEventListenerでイベント登録 } else if (obj.attachEvent) { //attachEventでイベント登録 } そういえばこのマシンIEしか入ってない(-口-;

submit時にdisableにしたボタンが一定期間で戻るサンプル

http://hoso.homelinux.net/hatena/safe_submit.jsp htmlにペタっと貼ったんじゃ体感できないので、体感できるサンプルを作ってみた。「処理完了!」と出たらサーバサイドの処理が終わっています。2秒と指定すれば、サーバサイドの処理が完了する前にボタン…

フォームsubmit時にフォーム部品をdisableにする

下記エントリをちょっと改造して作ってみた。そして http://d.hatena.ne.jp/faerie/20050805#1123218492 送信ボタンを押した後に、しいたけ等で送信を中止すると困ったことになる。リロードすれば送信できるようになるが、そうすると入力内容も消えてしまう…

フォームが変更された事を知る

昔なら全てのフォーム部品にonchangeを書いていましたけど、attachEventが使える今、ちょいと書き直してみました。 var types = [ "text", "password", "radio", "checkbox", "textarea", "select-one", "select-multiple", "button", "submit", "reset", ""…

既に定義されている関数を上書きしないで関数を追加する

こんな便利なのがあったのかー。 window.attachEvent("イベント名", "関数"); <body onload="alert('hoge');"> というイベントがなんらかの理由で"固定"で指定されていて、自前でonloadイベントに関数を追加したい場合。 window.onload = function() { alert('foo'); } と書きたくなります</body>…

onblurとonfocusout、onfocus、onfocusinどっちが先?

onfocusin, onfocusoutが先にイベントが発生しました。その後にonblur, onfocusが発生。ふむふむ。

イベント一覧

こんなにあったとは知らなかった。for inでオブジェクトにあるプロパティを列挙したら使ったことの無いイベントがあったのでメモ。こんなの知ってしまうと、またまた凝った画面が作れるようになっちゃうんだろうなぁ…。 onactivate oncontrolselect ondragst…

document.forms[0].submit();ではonsubmitイベントが発生しない

おかしいなぁおかしいなぁと思っていたら、JavaScriptでformをsubmitすると、onsubmitイベントが発生しませんっ!マジですかー。何年もJavaScript使っていて気づかなかった事に驚きを感じています。

連想配列でメソッドを表現する

http://www.ripcord.co.nz/behaviour/ via オレンジニュース 上記URLにあるスクリプトを見ていて、連想配列の要素をfunctionオブジェクトにしてしまえば、クラスにメソッドがあるように表現できる事を知りました。 var MyClass = { say : function(message) …

IE6.0でevalとelementsどっちが速いか

例えばinputタグのname属性を指定して、動的にフォーム内のオブジェクトを取得したいとします。パッと考えてオブジェクトを取得する方法は2つ思い浮かびます。evalとelementsです。では、どっちが速いのでしょうか?計測してみました。まずはサンプルのコー…

startsWithメソッドはどこ?

無いんだっけ… function startsWith( value, findValue ) { return ( value.indexOf( findValue ) == 0); } うぐぐ…美しくないよぉ(お主一体何を作っておる!) 追記:foundValueじゃなくてfindValueだろ…と修正してみる。

&nbsp;を置換する方法

久々にとてもJavaScriptではまりました。&nbsp;がどうやっても置換できないんです!具体的コードを書きましょう。 <input type="text" name="txt" value="&nbsp;"> たとえばこういうテキストボックスがあったとします。このテキストボックスは表示すると、半角スペースがひとつ表示されます。この半角スペ…

HTMLのTEXTAREAで文字数の入力制限はできるか?!

結論:サーバーサイドでチェックしる!!(笑) 英数字のみなら完全に入力時に制限かけられるんですが、日本語入力になると制限できないんですよね。 制限する方法を知らないと言ったほうが正しいのかな?(知ってる人いたら教えて〜) とりあえず半角だけ制限す…