Webのシステムを開発しているのですが、そのWebシステム
内でデータベースの排他処理などを行っており、システム
のページが表示されているブラウザで、アドレスを直接
書き換えて別のインターネットのページを表示されると
そのデータベースの排他解除をできません。
ブラウザのアドレス(URLの入力部分)を書き換えられた
とかいう情報がJavaScriptで取得できないでしょうか?
ブラウザのアドレスがシステムのページのパス名に変更
された場合に、排他処理を解除するとかいった処理が
行いたいのです。
大変、こまっているのでどんな情報でも結構ですので
ご存知の方がいたら教えていただけませんでしょうか?
ちなみに当方はASP.NETで開発を行っています。
ブラウザはIE6.0以上をターゲットにしています。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
非常に消極的な考え方かもしれませんが…
その排他処理を行うシステムにアクセスする前段階で、JavaScriptでロケーションバーやメニューバーのない別ウィンドウを開いて、そのウィンドウ内でその排他処理を行うデータベースのページを展開するという方法では駄目でしょうか?
ブラウザのロケーションバーの内容を取得したり、移動先のURLをキャッチするのは、JavaScriptではできないような気がするので、もとよりロケーションバー自体を隠してしまう方が、素人考えでは手っ取り早いような気がするのですが…
失礼しました。
アドバイスありがとうございます。
最終的な判断としては、教えていただいたような方法を
とるか、復旧用の機能を作成して、排他処理の復旧を
行う方法を考えているのですが、なんとか自動的な処理
で対応できないかと苦悩している毎日です。
また、なにかいい案が浮かんだりしたら教えてください。
No.3
- 回答日時:
たびたび、すみません。
#1,2の者です。以下の方法を自分で試したところ、ダメでした。
切り替え時の取得が直前なので、移動先のアドレスを取れないようです。
お騒がせでした。すみません。
No.2
- 回答日時:
#1の者です。
「location.href」で現在のアドレスが取得できますが、これを使ってアドレスの比較をするというのはどうでしょうか?
ページ読みこみ時にまず取得し、ページ切り替え時に再び取得して比較してみれば、システム内かどうかがわかるのではないでしょうか?
文字列として取得するはずなので、「indexOf」を使って検索すれば良いと思います。
こんな感じでどうでしょうか。
No.1
- 回答日時:
イベントハンドラの「onunload」を使うとどうでしょうか。
アドレスを書き換えたタイミングでは無理ですが、
その後に「Enter」を押すと機能します。
つまり他のページに切り替わる直前のタイミングとなります。
また、あらかじめアドレスバーを表示させないように
ウィンドウを開かせるという方法もあると思います。
参考にでもなれば。
回答ありがとうございます。
onunloadイベントは、ページの切り替わり時に必ず
発生するので、それだけでは、アドレスパーに入力
されてシステム以外のページが表示されたかどうかの
切り分けができません。
システム内でもかなりのページ遷移が発生するので、
システムで使用するWebサーバのホスト名と異なるページ
がアドレスに入力されてEnterを押されたといった感じ
の情報が取得したいなと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム URLがクリックや入力されてから、ブラウザに画面が表示されるまでの間にDNSサーバーは経由されないの 2 2022/06/24 01:15
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- Android(アンドロイド) 標準ブラウザがAndroidシステムWebviewのブラウザになってるAndroid端末を教えてくだ 2 2022/12/02 12:35
- Safari(サファリ) 米国サイトへ行きたいのに、勝手に日本語ページへ飛ばされる 1 2022/10/16 07:52
- その他(ブラウザ) インターネットが頻繁に途切れます、ただしブラウザのみです 3 2023/08/10 11:25
- Chrome(クローム) arrowsNXのF-04Gの地球儀ブラウザについてです。 愛用の地球儀ブラウザで画像をダウンロード 1 2023/01/07 23:00
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- その他(パソコン・周辺機器) EXCELで「WEBオプションの対象ブラウザ」を変更する方法 2 2023/04/12 15:44
- システム システムにインターネットからアクセスする際、URLではなく、IPアドレスでブラウザからアクセスするこ 2 2022/07/28 09:52
- その他(ブラウザ) 誰か助けてください。 地球ブラウザアプリのキャッシュ削除しても強制終了してもクラッシュが直りませんで 1 2023/02/08 19:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ActiveWorkbook.Pathの一つ下の...
-
ActiveReportのDataSourceについて
-
HSPでHTMLのタグのパラメーター...
-
VB.netのDataGridViewについて
-
Formatでmmが月と分を意味する理由
-
vbaで、オートシェイプ文字列、...
-
EXCELのメニュー操作アプリ(C#)
-
google apps script スクレイピ...
-
フォーム上で押されたボタンに...
-
j-axis 腕時計のアラーム止めたい
-
jspからServletを呼び、元のjsp...
-
プログラミングで例えばゲーム...
-
腕時計の時報をならないように...
-
画面を隠す・消す方法を教えて...
-
JSP+Servletで終了ボタン
-
C言語で今まで表示していた画面...
-
ServletからHTMLページへの遷移...
-
MySQL・Tomcat・JSP 何度もSub...
-
画像の縦横比固定の計算方法。
-
三菱GOTの画面切り替えについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
登録済みイベントリスナーの情...
-
ActiveWorkbook.Pathの一つ下の...
-
ActiveReportのDataSourceについて
-
EXCEL VBAで、EXCELの入力規則...
-
VBAでTIFF画像を読み込むには?
-
javascriptでローカルフォルダ...
-
Excelで可視セルの行番号取得
-
Formatでmmが月と分を意味する理由
-
strutsで空白を認識させるには?
-
javascriptでphpに値を渡す
-
Spreadでの複数行選択
-
javascriptでIMEの状態を取得
-
VB.netのDataGridViewについて
-
outlook vbaについて
-
log4jでログレベルが取得できな...
-
エクセルVBAでホームページの文...
-
指定地点(緯度・経度)から指定...
-
C++のDLLでコマンドライン引数...
-
漢字読み取得方法
-
OpenGLでBMP画像を出力するには?
おすすめ情報