- - PR -
WEBアプリケーションのルートディレクトリを取得したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-02-09 15:58
こんにちは。
Javascriptでこのように、取得したいのですが、どう取得したら良いのでしょう? http://(domain)/(webapp_root) location.host, location.pathnameから割り出せそうな気がするんですが、 一発で取得するコマンドは無いでしょうか? | ||||
|
投稿日時: 2009-02-09 16:38
document.location
ではなくて、ホスト名とスラッシュ以下を別々に取りたいということですか? | ||||
|
投稿日時: 2009-02-09 16:55
何が必要なのか、正直読み取れません。protocolとhostname(ポート番号が必要ならhost)で切りたいのかpathnameの2番目の「/」までで切りたい(これは単純な文字列操作ですよね)ということなのか・・。 例示されたURLでどの部分を取得したいのでしょう? | ||||
|
投稿日時: 2009-02-09 17:26
例えばTomcatのpath="/hogehoge"を取得したいということなら…できないでしょう。
パスによってWebアプリが分かれるのは、サーバ側のアプリの都合でクライアント(ブラウザレベルで)には関係ないことですから。 アプリの都合はアプリが伝えてあげないと。 [ メッセージ編集済み 編集者: mio 編集日時 2009-02-09 17:27 ] | ||||
|
投稿日時: 2009-02-09 18:01
ありがとうございます。
mioさんのおっしゃるように取りたかったのですが・・。 location.pathnameの先頭から2番目の"/"で、ルートディレクトリを取得するようにします。 function ajaxDomainURL() { var url = location.protocol + "//" + location.host + "/"; var crtpath = location.pathname.substr(1); while (true) { if (crtpath.indexOf("/") > 0) { crtpath = crtpath.substr(0, crtpath.indexOf("/")); break; } } return url + crtpath; } こんな感じになるのでしょうか? エラー処理がスカスカのような気もしますが・・。 ありがとうございました。 | ||||
|
投稿日時: 2009-02-09 19:09
splitを使えば比較的楽なんじゃないでしょうか?
| ||||
|
投稿日時: 2009-02-10 09:07
えーと。
Webアプリにはpath="/"のものと、path="/hogehoge"のものと、path="/hogehoge/mogemoge"のものとetc...があって、これらをJavaScriptで判別することはできないです。 | ||||
|
投稿日時: 2009-02-10 09:33
mioさんのおっしゃるように、
何番目のスラッシュかは、配置状況によるので 何番目のスラッシュまでがWEBアプリのパスなのかを伝える(埋め込んでおく)必要があります。 (それならいっそWEBアプリのパス埋め込めばってことになりますが) ところでjavascriptですが、portも気にした方がいいかもしれません。 |