Silverlight をインストールするには、ここをクリックします*
Japan変更|すべてのMicrosoft のサイト|サインイン
MSDN
|MSDN ライブラリ|デベロッパー センター|ダウンロード情報|開発ツール製品|コミュニティ|ご意見・ご要望|サイトマップ
MSDN Home > 連載コラム > DHTML Dude > 迷惑で押しつけがましいサイト

迷惑で押しつけがましいサイト

Dave Massey
Microsoft Corporation

May 1, 2001
日本語版最終更新日 2001 年 6 月 18 日

これまでに、目の前に突然現れる Web サイトに気付いたことはありませんか ? そう、私がお話しているのは、ページからまたはページに移動したときに、ほかのブラウザ ウィン ドウをいわくありげに表示するサイトのことです。このように不意に現れるウィンドウには、多くの 場合オンライン広告以外に役に立つものは何も表示されません。一般的に、ポップアップ ウィンドウと呼ばれるこの機能は、通常ページ上でスクリプトが window.open メソッドを呼び出すことにより実現されています (詳細については、open Method を参照してください)。window.open メソッドは使い方によっては いらいらさせられますが、適切に使用すれば非常に優れたアプリケーションの構築を可能に します。

Internet Explorer チームは、ユーザーがポップアップ ウィンドウの表示を禁止できる機能を 要求されることがよくあります。しかし、これは私たちをジレンマに陥れます。顧客に優れたソリューション を提供するために、この潜在的に強力なツールを使用する自由を開発者に与えましょうか ? それとも、開発者がこの機能を乱用しないようにプラットフォームを制限しましょうか ? Internet Explorer チームは、セキュリティに関連する問題が存在する場合を除いて、 開発者が何の制限もなく優れたアプリケーションを構築できるように、開発者に可能な限りの柔 軟性を提供するべきであるという立場を取っています。

今月は、なぜポップアップ ウィンドウの機能が必要かをお話します。さらに、サイトに訪問者を 引き止めるために役に立つお勧めの事例も少しお話したいと思います。また、ほんのわずかです が、訪問者のいらいらを取り除く手法もご紹介します。

ポップアップの必要性

ユーザーが現在の状況を失わずに、関連するコンテンツを開けるようにほかのウィンドウを表示 する能力は、非常に役に立ち、Web 上の多くの場所でうまく利用されています。多くの場合、ユー ザーが達成しようとしている作業の自然な延長として表示されるときは、ユーザーは別のウィンドウ を利用していることに気付きません。

window.open 機能の優れた使用例は、Internet Explorer に関する MSDN オンライン リファレンスです。ブラウザで Web ページ onblur Event を開いてください。ページを下の方にスクロールしていくと、いくつ かのサンプル コードと [Show Me] ボタンがあり、サンプル コードの動作を見ることができます。 このボタンをクリックすると、新しく、独立したウィンドウでサンプルが実行されているところが表 示されます。サンプルとその参照ページを同時に見たいユーザーにとっては、状況が維持され るこの環境は非常に役に立ちます。

もし、ブラウザが window.open の機能を制限すると、今日 Web 上に存在する 非常に多くのサイトが機能しなくなります。ポップアップ広告を作成するだけのサイトが機能し なくなることはあまり気になりませんが、この機能を適切に使用しているものも数多く存在しま す。

最悪の事例

この機能の最も不愉快な (obscene) 使い方であると考えている例は、最も不愉快な (obscene) サイトで使われる傾向にあります。私はここで、故意に不愉快な (obscene) という単語を使いました。私はこのようなサイトを "ユーザーをわな (Trap) にかける" サイトと呼んでいます。このようなサイトでユーザーが別のページへのリンクをクリックするか、ブラウザ ウィンドウを閉じようとすると、ページ上のスクリプトがそのイベントをトラップ (Trap) し、別のブラウザ ウィンドウを開く処理に進みます。この技法はアダルト サイトで頻繁に使われているように思います。

この事例は Web での不注意の検索によって、思いがけず偶然にこのようなサイトに入り 込んだときに、特にいらいらさせられます。このようなサイトに迷い込むと、突然不愉快なイ メージを持つウィンドウが 5 つも 6 つも表示されます。それらのウィンドウを 1 つ閉じようとする たびに、別に新たなウィンドウが 2 つ出現します。これはいらいらさせられるだけでなく、非常 に不愉快です。無垢なユーザーは、イメージの無限の連続から逃れる唯一の方法は、コン ピュータのリセット ボタンを押すことだけだと感じるかもしれません。

もちろん、このようなことを行うサイトは広告収入の支払いの助けになることばかりに注目 しており、私がこの機能の最適な使い方に関して行う推奨に従うとは思えません。それでも なお、このようなサイトがユーザーをわなにかけることを差し控えるように心からお願いします。 また、ユーザーがこのようなサイトを回避するようにブラウザを設定できるように、これらのコン テンツを適切に評価しましょう (Internet Ratings を参照してください)。

最善の事例

以下は、このテクノロジに関して最善の事例であると私が考えていることのアウトラインです。 最終的にこの機能の使用法を選択するのは読者自身ですが、使い方を誤れば読者のサイト の訪問者がいらいらすることになり、その結果彼らが戻ってくる可能性は少なくなります。

  1. 読者のサイトを利用する人々について考えてください。彼らは、実際に複数の ウィンドウが表示される概念を理解しているでしょうか ?
    このコラムの読者は、複数のアプリケーションが同時に実行される方法と、それらのアプリケーショ ン間を切り替える方法を理解していることは疑う余地もありません。しかし、コンピュータの経験が 少ないユーザーのことを考慮してください。彼らにとっては複数のウィンドウを管理することは大変 な作業だと感じる可能性があります。経験の少ないユーザーが頻繁にサイトを訪れることを期待 する場合は、ユーザーが状況を見失わず、あるウィンドウから別のウィンドウへの切り替えで混乱 しないように、サイトのユーザー インターフェイス全体を 1 つのウィンドウで提供するほうがより適切 かもしれません。

  2. ユーザーの操作に直接応答する場合のみ新しいウィンドウを開き、ユーザーが行っ た操作が別のウィンドウを開いたことを明確にする方法について考えてください。
    私の見解では、任意のコンピュータ プログラムが行うことの中で最もいらいらさせられることの 1 つは、 ユーザーの操作を伴わないで新しいウィンドウを開くことです。ユーザーの操作に直接応答する場合 のみ window.open を使用すると、ユーザーは操作の結果に関連してウィンドウが開いたこ とを認識できます。ユーザーの操作とその結果の間に長い遅延が生じると、ユーザーはその 2 つのこ とを関連付けるのに苦労することになるでしょう。

  3. 広告を表示するためだけにポップアップを使用してはいけません。
    広告がユーザーが訪問しているサイトのする主要な部分ではない場合、広告はユーザーには好意的に 受け入れられないように思えます。

  4. サイトの訪問者をわなにかけてはいけません。
    ユーザーがサイトを離れるときに、ある状態を保存したいかどうか確認するためにユーザーに問い合わせを 行うことは適切かもしれません。しかし、別のウィンドウを開くことによりユーザーをわなにかけようとすることは 単なる無礼な行為で、ユーザーが戻ってくることを期待することは困難でしょう。

ポップアップ ウィンドウの使用を回避するために Dynamic HTML を使用する

Dynamic HTML は非常に強力で、柔軟なアプリケーションの構築を可能にします。 数年前は、すべての Web は静的なものでした。ユーザーがリンクをクリックするたびに、 サーバーはまったく新しいページをユーザーに送り返していました。その後、ユーザーとの 対話性を高めるために Java、プラグイン、および ActiveX コントロールが使用されまし た。しかし、これらはページの HTML コンテンツにうまく統合されませんでした。 Internet Explorer 4.0 で始めて動的コンテンツのサポートが出現し、その後この機能は バージョン 5.0、5.5 で強化されました。そして、現在 6.0 プレビューでこの機能のより豊富 なセットが利用できるようになりました。

この豊富な機能性を使用することにより、すべてのユーザー インターフェイスが 1 つの ブラウザ ウィンドウ内で実行され、ユーザーが完全なアプリケーションを操作しているように 感じられるソリューションを提供できます。私がお気に入りの例の 1 つは blox.com が提供するものです。 この企業は、追加コンポーネントをインストールしないで、Internet Explorer ブラウザで実 行されるオンライン スプレッドシートおよびプレゼンテーション ソフトウェアを提供しています。 このソリューションの能力により、サイトを訪問し、アプリケーションを実行するためには、 Internet Explorer を使用することが要求されます。しかし、いらいらさせられる余分な ウィンドウを開くことなしに実現されるさまざまな種類の豊富な Web 体験を実証します。

ページの一部を独立したコンテンツとして提供するために使用する技法の 1 つに "インライン フレーム" があります。これは <IFRAME> タグを使 用するので IFrames 呼ばれています。IFrames は親ドキュメントの一部として独立し た HTML ドキュメントを表示する能力を提供します。 ( IFRAME Element | iframe Object を参照してください。)

Netscape 6 がこの機能をサポートするようになったので (Internet Explorer では バージョン 3 から利用できました)、私たちは Web 上でこの技法が使われるのを見る 機会が増えるかもしれません。この手法の使用により、フレームセットに関連していた オーバーヘッドやレイアウトの制限を回避でき、サイトのコンテンツをより効率的に管理 できるようになります。

複数のブラウザ ウィンドウの使用を回避するための別の技法は、ブラウザ ウィンドウ のコンテキストに応じてユーザーと対話するために HTML ダイアログを使用することです。 このアプローチについては、私が去年書いた記事、「優れたダイアログの重要性」を参照してください。

最後のヒント

このコラムでは新しいウィンドウに注目してきました。私は、このコラムを多くのユーザー がまだ気が付いていないような、Internet Explorer のパワー ユーザーのためのヒントで締めくくろうと 思います。読者が電子メールで送られてきたハイパーリンクをクリックすると、既に開かれ ているブラウザ ウィンドウにそのページが表示されることがわかります。この理由は、単に コンピュータのリソースを最も効果的に使用するためです。しかし、私たちはパワー ユーザー にとってはこれが望ましい動作ではないかもしれないと認識しています。そのため、 常に新しいブラウザ ウィンドウを開くオプションがあります。

これを実装するには、[ツール] メニューから [インターネット オプション] ダイアログを開き ます。[詳細設定] タブで、[ショートカットを起動するためにウィンドウを再使用する] オプション をオフにします。私は、ブラウザ ウィンドウをたくさん開いて長時間作業するので、 電子メールで送られてきたハイパーリンクに従って新しいウィンドウを開くように、このオプション をオフにしています。これにより、私が開いているすべてのブラウザ ウィンドウを適切に細かく 制御できます。


Dave Massy は、時折サングラスをかけて Dude を気取っていますが、サングラスをはずしたときは、Windows と Internet Explorer のテクニカル エバンジェリストとして働いています。彼の役目は、Microsoft のお客様がどうすればそのテクノロジを最大限に利用できるかを話すことです。Dave はテクニカル エバンジェリストになる前は、Internet Explorer チームのプログラム マネージャとして働いていました。Dave は生まれながらに英国に住んでいるので、アメリカ人の同僚にいかにトマトを正しく発音させるかという難題に果敢に取り組んでいます。



Microsoft