• 締切済み

ブラウザのアドレスが変更されたら

Webのシステムを開発しているのですが、そのWebシステム 内でデータベースの排他処理などを行っており、システム のページが表示されているブラウザで、アドレスを直接 書き換えて別のインターネットのページを表示されると そのデータベースの排他解除をできません。 ブラウザのアドレス(URLの入力部分)を書き換えられた とかいう情報がJavaScriptで取得できないでしょうか? ブラウザのアドレスがシステムのページのパス名に変更 された場合に、排他処理を解除するとかいった処理が 行いたいのです。 大変、こまっているのでどんな情報でも結構ですので ご存知の方がいたら教えていただけませんでしょうか? ちなみに当方はASP.NETで開発を行っています。 ブラウザはIE6.0以上をターゲットにしています。 よろしくお願いします。

  • onti
  • お礼率64% (9/14)

みんなの回答

noname#199778
noname#199778
回答No.4

非常に消極的な考え方かもしれませんが… その排他処理を行うシステムにアクセスする前段階で、JavaScriptでロケーションバーやメニューバーのない別ウィンドウを開いて、そのウィンドウ内でその排他処理を行うデータベースのページを展開するという方法では駄目でしょうか? ブラウザのロケーションバーの内容を取得したり、移動先のURLをキャッチするのは、JavaScriptではできないような気がするので、もとよりロケーションバー自体を隠してしまう方が、素人考えでは手っ取り早いような気がするのですが… 失礼しました。

onti
質問者

お礼

アドバイスありがとうございます。 最終的な判断としては、教えていただいたような方法を とるか、復旧用の機能を作成して、排他処理の復旧を 行う方法を考えているのですが、なんとか自動的な処理 で対応できないかと苦悩している毎日です。 また、なにかいい案が浮かんだりしたら教えてください。

noname#4886
noname#4886
回答No.3

たびたび、すみません。#1,2の者です。 以下の方法を自分で試したところ、ダメでした。 切り替え時の取得が直前なので、移動先のアドレスを取れないようです。 お騒がせでした。すみません。

noname#4886
noname#4886
回答No.2

#1の者です。 「location.href」で現在のアドレスが取得できますが、これを使ってアドレスの比較をするというのはどうでしょうか? ページ読みこみ時にまず取得し、ページ切り替え時に再び取得して比較してみれば、システム内かどうかがわかるのではないでしょうか? 文字列として取得するはずなので、「indexOf」を使って検索すれば良いと思います。 こんな感じでどうでしょうか。

noname#4886
noname#4886
回答No.1

イベントハンドラの「onunload」を使うとどうでしょうか。 アドレスを書き換えたタイミングでは無理ですが、 その後に「Enter」を押すと機能します。 つまり他のページに切り替わる直前のタイミングとなります。 また、あらかじめアドレスバーを表示させないように ウィンドウを開かせるという方法もあると思います。 参考にでもなれば。

onti
質問者

お礼

回答ありがとうございます。 onunloadイベントは、ページの切り替わり時に必ず 発生するので、それだけでは、アドレスパーに入力 されてシステム以外のページが表示されたかどうかの 切り分けができません。 システム内でもかなりのページ遷移が発生するので、 システムで使用するWebサーバのホスト名と異なるページ がアドレスに入力されてEnterを押されたといった感じ の情報が取得したいなと思っています。

関連するQ&A

  • データベースに書き込むときの排他処理

    ASP3.0 IIS5.0 ASP初心者です。初心者の素朴な疑問なんですが、 ASPで、例えばWebページから入力された情報を、 Accessなどのデータベースに書き込むとき、 排他処理って必要ですよね? 一般的にどうやるのでしょうか? Application変数を使うのでしょうか? データベース自体に排他制御する機能があるのですか? よろしくお願いします。

  • 排他制御。

    現在ASPで作成しているプロジェクトでは ページが三つあります。 1ページ目でデータを選択し、排他をかける。 2ページ目でデータを更新して、 3ページ目で排他を解除しています。 この際2ページ目でページを閉じられた場合、 排他を解除しなくてはならないのですが なにかいい方法はありませんか? また、ブラウザの戻るボタンを押されたときにも 排他を制御しなくてはなりません。 なにか判断する方法はないでしょうか?

  • ブラウザのURLアドレス文字表記だけを変更する。

    いつもお世話になっております。 題名どおりなのですが、ブラウザのURLアドレス表記だけを変えて(かつその変えたページには飛ばない)方法はありますでしょうか? location.href などでは当然そのページに飛んでしまいます。 そうではなく、URLアドレス表記だけを変える方法です。 JavaScriptかPerlであれば手段は問いません。お願い致します。

  • インターネットブラウザがおかしいです

    新規ウィンドウが表示できなくなりました。 target="_blank"のhtmlタグで、実際ページでクリックしたら新規ブラウザが開くのですが 中心のページが表示されるはずの部分は、透明になっていて向こう側が見えています。 いつまで経っても表示されず、開かれたブラウザのURL欄にアドレスさえ表示されていません。 直接アドレスを入力すれば、いけます。 とても困っています、どうすれば直るでしょうか? ▼補足▼ OSはWindows98で ブラウザはIE6.0を使用しています。

  • ブラウザのイントラネットモード

    オンプレミスでwebシステムを開発しています。 イントラネット環境での運用となりますが、ブラウザ(特にIE9、10)のイントラネットモードとシステムの相性が悪いようでjavascriptの動き等がおかしい部分が出てきてしまっています。 出来れば、イントラネットモードと認識しないように運用したいのですが、何か方法はありますでしょうか、ただし、以下方法については不可とさせてください。 ×hostsを書きかえる ×IPでの運用 ×FQDNでの運用 <meta http-equiv="X-UA-Compatible" content="IE=9;IE=10;IE=11"> や <meta http-equiv="X-UA-Compatible" content="IE=Edge"> 等を使った互換表示の解除は試してみましたが、IE9だと変な表示になっている部分もあります。(IPで接続すると問題なく表示されるため、プログラムの問題と言うよりイントラネットモードとの相性だと思っています。) ブラウザの設定もしくは、タグ(ヘッダー情報)等でイントラネットモード自体を解除する方法はありませんでしょうか? ご教授よろしくお願いいたします。

  • アドレスを見れなくするには?

    ASPで、アドレス部分に表示されるURLの?以下を %やいろいろな文字に置き換えて情報を隠すほう方法を おしえてほしいのですが・・ Javascriptを使用。

  • Javaで作ったWebブラウザをJavaScriptに対応させるには?

    JavaでWebブラウザを作っています。 HTMLのページはうまく表示されるのですが、JavaScriptが使われているページがうまく表示されません。 どうしたらいいのでしょうか?どなたかよろしくお願いします。

  • ブラウザにIPアドレスを直打ちしたときの動作

    ブラウザのアドレス・バーに、IPアドレスを直打ちしたときの動作に関する質問です。 ■パターン1 "www.google.co.jp"のIPアドレスは、pingコマンドで調べると"173.194.38.127"です。 ブラウザのアドレス・バーに、このIPアドレスを打ち込むと、"www.google.co.jp"を打ち込んだときと同じウェブページが表示されます。 アドレス・バーに表示されたIPアドレスは、そのままです。 ■パターン2 次に、"www.bing.com"のIPアドレスは、pingコマンドで調べると、"203.179.83.13"です。 ブラウザのアドレス・バーに、このIPアドレスを打ち込むと、"www.bing.com"を打ち込んだときと同じウェブページは表示されず、「Web ページが見つかりません」となり、アクセスできません。 ■パターン3 次に、"www.facebook.com"のIPアドレスは、pingコマンドで調べると、"69.171.237.32"です。 ブラウザのアドレス・バーに、このIPアドレスを打ち込むと、"www.google.co.jp"を打ち込んだときと同じウェブページが表示されます。 ところが、アドレス・バーに表示されたIPアドレスは、、"69.171.237.32"から"www.facebook.com"に自動的に変わっています。 さて、ここからが本題です。 自分が運営しているウェブサイトは、パターン1と同じ動きになります。 これを、パターン2またはパターン3と同じ動きに変更したいと考えています。 ウェブサーバーに何か設定をすれば、これは可能なのでしょうか? ちなみにウェブサーバーには、ラピッドサイトのVPS-Sというレンタルサーバーを利用しています。 VPS 料金・機能一覧 | VPSならラピッドサイト http://www.rapidsite.jp/product/vps/price.html#price_jp

  • Webブラウザの閉じるボタン無効化についての質問

    お世話になります。 現在、ASP.NET(C#)にてIEブラウザの閉じる(×)ボタンを 非表示にするあるいは無効にする処理を加えようとしています。 現行では、JavaScriptのonbeforeunloadにて閉じるボタン 押下時の処理を加えています。 しかしながら、処理を加えた後閉じるボタンを押下した際に 「このページからほかのページに移動しますか?」確認MSG が表示されてしまいまして、「OK」を押下すると画面が閉じて しまいます。 IEの閉じるボタン無効化の機能が成立しません。 そこで質問としまして、 ・IEブラウザの閉じるボタン無効化 ・IEブラウザの閉じるボタン押下時に表示される  「このページからほかのページに移動しますか?」確認MSG  を非表示にする 方法がございましたら、ご教授お願い致します。

  • ASPを利用したWEBシステムについて

    お世話になっております。 ASPを利用し、WEBシステムを開発しています。 さて、その中で、とあるページにある「ダウンロード」というリンクを押すと、CSVファイルのダウンロード画面が表示されるというものになっています。 「ダウンロード」リンクは"aaaa.asp"となっており、"aaaa.asp"の中の処理で、DBより取得したデータを集計し、CSV出力しているというものです。 <a href="aaaa.asp">ダウンロード</a> そこで、今回はその処理動作において、データが0件の場合、ポップアップにて"データなし"という旨のメッセージを表示するという処理を施したいのですが、JavaScriptを使うのかな?と思いつつも、どうしたらいいのかわかりません。 説明不足なところもあるかもしれませんが、宜しくお願い申し上げます。

専門家に質問してみよう