Windows XPの IE7、Firefox2.0.0.12、Opera9.26 で確認 →Blogへ戻る onchangeの場合 ブラウザマウスで選択カーソルキーで選択
バブリングとは バブリングとは・・・イベント発生源(クリックされたりした要素)からの親ノード親ノードへとイベントが伝わること。深い部分の要素から泡が浮き上がってくるようにイベントが伝播するからバブリング ▲ ▼ JavaScriptのイベントハンドラ JavaScriptではこのイベントの伝播をイベントハンドラ(onclickとかonmouseoverとか)でキャッチすることによって、イベントを関数キックのトリガーに使うことができる。 いつもonclickとかで書いているのは、自分発生のイベントを自分でキャッチしているってこと 別の見方をすると、イベント発生源とイベントハンドラがくっついているものは一緒な必要が無い だからイベントハンドラが登録してあれば、子要素をクリックした場合、親をクリックしてもないのに親のイベントハンドラにセットしてある関数が呼び出されたりします バブリングはキャ
要素が挿入された瞬間を取得する 今までは出来ないと思っていたのですが、今日いろいろ試していて出来る方法が分かりました。 ですので、ちょっと紹介したいと思います。今のところアイデアなので、実用性は?です。 方法 HTML に以下の style 要素を挿入することで実現することができます。 <style type="text/css"> * { display: expression(function() { if (!this.__mark) { this.__mark = true; alert('inserted node: ' + this.tagName); } return ''; }.apply(this)); } </style> 実際に例を見てみましょう http://amachang.art-code.org/ieexpression/000.html <!DOCTYPE
本気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 を読んで,思うところあって書いてみました(決してカウンターアーティクルではない)。 むかしむかし JavaScript を触っていた むかしむかしに書かれた JavaScript の本で勉強している/した 人向けに。大元記事(そろそろ本気で学びませんか? | Think IT(シンクイット))の想定読者に近いかなと思います。よって以下は JavaScript の初学者にはまったくおすすめできない(余計な知識がついてしまう)です。 Step 1: はじめのいっぽ ボタンを押したらメッセージボックスが出現する HTML を書いてみます。 <html><body> <script type="text/javascript"> function ShowMes
cl.pocari.org - prototype.js の Event.observe を使った onbeforeunload について JavaScript のイベントに、Windows が閉じられる直前に起こる onbeforeunload があります。 JavaScriptのonbeforeunloadをPrototype.jsで使う。 ページを移動しようとすると、ダイアログが表示され、移動するかどうか聞いてくる、という画面を見たことがあると思いますが、これは onbeforeunload イベントによるものらしいです。 WEBサイトでは、間違ってリンクをクリックしてしまって、誤って別のページに移動してしまい、編集中の内容が消えてしまったりすることがあります。 利用者側としては、移動する前に確認してほしい、という思いが生まれると思いますが、onbeforeunload で移動前に確
Sjaxを使わないJavaScript Loader - ヒルズで働く@robarioの技ログ と JavaScriptから外部JavaScriptを読み込む方法 - ヒルズで働く@robarioの技ログ の改良版です。この二つの記事は忘れてもらって結構です。 前振りとか ライブラリを読み込みたい(><) 「script要素をappendChildする」でやると読み込み完了を待ってくれないので「setTimeoutで3000ms後に本処理」とか、嫌だ。 そこで「指定したプロパティが存在するか」を監視するスクリプトloader.js.incを書きました。http://coderepos.org/share/に置いてあります。 http://coderepos.org/share/browser/lang/javascript/misc/loader.js.inc http://coderep
今回はイベントについて学んでいきましょう。JavaScriptによるアプリケーションを作成するうえでは,イベントは欠かすことができない要素です。 ここでは,旧来より使われてきたイベントハンドラのおさらいと,イベントハンドラの問題点を考察します。そして,イベントハンドラに置き換わるW3C DOMイベントモデルの基礎を学んでいきます。 イベントとは イベントとは,ブラウザ上で発生した出来事全般のことを表します。例えば,ブラウザに表示された画面上でマウスをクリックしたり,テキストボックスに文字を入力するといったように,閲覧者が何か操作したときにイベントが発生します。また,HTMLがブラウザに読み込まれたり,別のページに移動したという現象もイベントとして認識されます。 まずはじめに,旧来より使われてきたイベントハンドラについておさらいしましょう。 イベントハンドラ イベントをJavaScriptで
Re:href="#" onclick の悪習 ネタ元:某日記:href="#" onclick の悪習 <a href="#" onclick="...">検索</a> なんて書き方やめようぜ!というお話 a要素のhref属性に値が入ってるとonclick属性の内容を実行後にhref属性の値を参照しようとする。 #なんかが入ってるとページの一番上部にページ内遷移をする。(※1) 某日記さんの代替案ですけどspanで代替するもの <span style="cursor: pointer" onclick="...">検索</span> 私だとこんな書き方 <a href="javascript:void(0)" onclick="...">検索</a> onclickイベントハンドラを実行しようとしてるなら、こんな書き方もある <a href="javascript:(onclickの内容
javascript の暗黒面については、ちょっと書かれているので何も言わずもがな。なのですが、最近こういった質問が増えてきたので少し書く。 via - JavaScript の暗黒面を覗く nullはオブジェクトだ! nullは歴史的理由からobjectです。なので、typeofするとobjectって返ってきます。 alert(typeof null); // object なので、この事に気がついている方は次のようなコードを書きます。 if(typeof hoge == 'undefined' || hoge == null){ // do something } たとえば、次のようなコード var hoge = function (a){ if(typeof a == 'number'){ // was number // 数値計算とか return a + 1; } if(type
JavaScriptでのキーボードイベントの処理はブラウザによって違っていて、クロスブラウザで動作させるためには、それぞれのブラウザに合ったコードを実行し分ける必要があります。 JavaScriptでキーボードイベントを取得し、どのキーコードが押されたかを判別するサンプルを以下に示します。CtrlキーやShiftキーが押されたかどうかなどのチェック方法も併せて示しています。 このサンプルを活用することで、Webアプリケーションにショートカット機能をつけ、より使い勝手のよいWebアプリケーションを作成する手助けになるはずです。 以下、サンプル。 <html> <title>クロスブラウザでキーボードイベントを処理する方法</title> <!-- js コード --> <script type="text/javascript"> document.onkeydown = function(
MS、パケット情報の解析ツール「Microsoft Network Monitor 3」を無償公開 次の記事 ≫:PHPからjQuery(JavaScriptライブラリ)を簡単に使うことができる「PQuery」 RightContext JavaScriptで簡単に独自の右クリックメニューを作成するライブラリ「RightContext」。 ページで右クリックを押したときに、次のようにポップアップで独自メニューを出すライブラリが公開されました。 右クリックにメニューを組み込んでしまうことで、ツールによっては大変便利な使い勝手を提供できるはずです。 以下に実装方法を紹介。 (1) まずScriptファイルを読み込みます。 <script type="text/javascript" src="rightcontext.js"></script> (2) 次に右クリックしたときに独自メニューを表
自分が普段 Firefox なものだから,ページ作ったときにはまず,Firefox (しかも on Mac)で確認して,おーけー,とか思ってしまうけど,一般的には IE on Win なわけです。いやいや確認してみると javascript まわりでやっぱりエラーがでてたりしてデバッグしたり,ぐぐったりするはめになる。 で,今回 Google Maps API 関連での注意事項 for IE を覚え書きとしてまとめてみたりする。 onloadを使う body中に google map の初期化コードを書いて実行させると,たとえ Firefox ではまともに表示されても,IEではエラーになる場合がある。エラーになる場合とならない場合があるようだが,どこぞの情報によれば,<div></div>等のブロック要素がネストしているような場合,エラーが発生しやすいようだ。 で,結局のところ,初期化コー
今も昔も大変よく使われている古典的JavaScriptの一つjavascript:history.back()なんですが、実際に戻る操作が成功したのかどうかを判別することができません。タブブラウザなんかを使っててミドルクリックで新規タブで開いてたりすると、history.backをクリックしても無反応で何も起こらない、なんてことよくありませんか? そんなわけなのでhistory.backを実行後にページ移動が発生しているかどうかを監視して、戻るに失敗したときに特定の処理を発生させることができるような関数を作ってみました。 function try_back(errback){ var bs = false; Event.observe(window,"unload",function(){bs=true}); Event.observe(window,"beforeunload",func
Timeout your Mouseovers This is a fun effect I built for Chowhound that does one better for mouseovers. The problem with most menu systems is that they're really touchy whether you're too fast or slow with the mouse. マウスオーバーするとポップアップするようなエフェクトはよく見かけますが、マウスアウトしたときにすぐ消えるのではなく、しばらくしてから消したいような場合に使えるサンプル。 prototype.js, scriptaculous(effect.js) を使って実装しているようです。 通常はマウスアウトするとすぐに消えますが、余裕を持たせて閉じるというのも触った感触とし
通常のマウスオーバーを使うメニューだと、展開まで早すぎる、あるいは遅すぎる場合が多々あるわけですが、このスクリプトだとちょうどいい速度で展開してくれるらしい。 スクリプトの詳細は以下の通り。 Timeout your Mouseovers 上記ページの「Roll over me」の上にマウスを乗せれば展開されます。確かに今までのものよりもスピードやタイミングがちょうどいい感じな気もする。ちょっと一呼吸置いてから展開される感じですね。
This is a fun effect I built for Chowhound that does one better for mouseovers. The problem with most menu systems is that they’re really touchy whether you’re too fast or slow with the mouse. The trick is to use a timeout with the effect, so it will wait a fraction of a second to pop-up, and a fraction of a second to go away…just enough to make the effect feel solid and not finicky. I won’t take
target="_blank" を使わないで新しいウィンドウでリンクを開く方法 2006-03-14-5: [JavaScript] <a href="foo.html" target="_blank">foo</a> を使えば新しいウィンドウでリンクが開きますが,これは XHTML 1.1 や XHTML Basic では採用されていません. ではどうするかというと,スクリプトを使うわけですが, <a href="javascript:void(0)" onclick="window.open('foo.html');">foo</a> こうすると,一見解決したようですが,JavaScript が off の場合はリンク先に飛べません. しかも,ステータスバーにリンク先が出ないので不安になります.これを <a href="foo.html" onclick="window.open('f
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く