• ベストアンサー

ウインドウの表示内容を固定する

window.openを使って新しいウィンドウを開き、アプリケーションを使用することを考えています。 ところが、メールに添付されたりしているURLをクリックすると、作業中のウィンドウに表示されてしまい、アプリケーション側の作業が台無しになってしまいます。 新しく開いたウィンドウには別のURLを表示させないという方法はありませんか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

補足を拝見しました。 既存のページに手を入れないという事ですと、フレームを使う方法があります。 以下のようなダミーのフレームを作って、その中にページを表示してください。 ページ内の移動は通常どおり行えるはずです。他のアプリケーションからの 表示の場合にはフレームのアンロードイベントが発生するため、移動できなくなります。 ただし、リンクのtarget指定やJavaScriptでのDOM利用があると修正が必要に なるかもしれません。 -------------------------------------------------------------------------- <html> <frameset onunload="location=location">  <frame src="index.html"></frame> </frameset> </html> --------------------------------------------------------------------------

Wild7
質問者

お礼

アドバイスいただき、ありがとうございます。 しかし、残念ながら以下の2点のために実用はできないようです。 1.アプリケーションのログイン画面から進まない。(ログインできない) 2.外部からURL指定があった場合に、最初のページに戻ってしまう。 今回は、運用方法を徹底することで障害を回避しようと思います。 どうも、ありがとうございました。

その他の回答 (1)

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.1

本当はメールソフトやブラウザの設定で解決できれば良いのですが、 それができない場合は以下のようなJavaScriptで対処できるかと思います。 (IE6とFirefox1.5で確認しました。) 他のアプリケーションからの表示も、ブックマークからの移動もできなくなります。 ページ内からの移動を可能とするため、フラグを使用しました。 -------------------------------------------------------------------------- <html> <head> <script> var lock = true; function go(url) {  lock = false;  location.href = url; } </script> </head> <body onunload="if(lock){location=location;}"> <input type="button" value="test" onclick="go('http://okwave.jp/')"> </body> </html> -------------------------------------------------------------------------

Wild7
質問者

補足

早速のアドバイス、ありがとうございます。 かなりイメージに近いものでした。 しかし、ページ内で異動した後は、ロックが取れてフリーになってしまいます。 またページ内の全てのリンクにonclick指定しなければならないようですが、ブラウザ上でアプリケーションを動作させるので、不可能に近い作業です。 指定したウィンドウに対してロックを掛け、そのウインドウ内は自由に行き来ができ、しかも外部からのURL指定等による影響を受けないようにしたいのです。 よろしくお願いします。

関連するQ&A