アプリ版:「スタンプのみでお礼する」機能のリリースについて

Webのシステムを開発しているのですが、そのWebシステム
内でデータベースの排他処理などを行っており、システム
のページが表示されているブラウザで、アドレスを直接
書き換えて別のインターネットのページを表示されると
そのデータベースの排他解除をできません。
ブラウザのアドレス(URLの入力部分)を書き換えられた
とかいう情報がJavaScriptで取得できないでしょうか?
ブラウザのアドレスがシステムのページのパス名に変更
された場合に、排他処理を解除するとかいった処理が
行いたいのです。

大変、こまっているのでどんな情報でも結構ですので
ご存知の方がいたら教えていただけませんでしょうか?

ちなみに当方はASP.NETで開発を行っています。
ブラウザはIE6.0以上をターゲットにしています。

よろしくお願いします。

A 回答 (4件)

非常に消極的な考え方かもしれませんが…



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

失礼しました。
    • good
    • 0
この回答へのお礼

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

また、なにかいい案が浮かんだりしたら教えてください。

お礼日時:2003/09/15 10:34

たびたび、すみません。

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

お騒がせでした。すみません。
    • good
    • 0

#1の者です。


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

こんな感じでどうでしょうか。
    • good
    • 0

イベントハンドラの「onunload」を使うとどうでしょうか。


アドレスを書き換えたタイミングでは無理ですが、
その後に「Enter」を押すと機能します。
つまり他のページに切り替わる直前のタイミングとなります。

また、あらかじめアドレスバーを表示させないように
ウィンドウを開かせるという方法もあると思います。

参考にでもなれば。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/09/11 15:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!