人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javascriptで「document.location」としてそのページのURLを取得している値を変える方法はありますか?

http://www.aaa.com/xxx.php?z=123&x=2
のようなページに貼り付けたJS(bbb.jsとします)の中で、document.locationで値を取得しているとします。

このとき、document.locationの値を、
「http://www.aaa.com/xxx.php」だけにしてしまいたいと思います。

それをする方法として、bbb.jsを呼び出す前に、
document.location = "http://www.aaa.com/xxx.php";
というようにしておくことで、本来のdocument.locationの値でないものを渡すことはできますか?

また、その方法は以上の方法でいいのでしょうか?

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript js URL いもの
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● Yota
●23ポイント

locationオブジェクトはwindowオブジェクトの子供なので正しくは、window.locationです。(window.は省略可能)

URLを取得するなら、location.hrefです。

http://www.scollabo.com/banban/java/ref_02.html

?以降を削りたいということであればこんな方法になるのでは。

var shorturl =

'http://' + location.hostname + location.pathname ;

◎質問者からの返答

削りたいわけではなくて、あるライブラリ内で、「document.location.toString()」が使われたりしているのですが、そこに本来のクエリつきのURLでないものを使わせるようにしたいと思っています。


2 ● Marine-Blue
●23ポイント

document.locationは読み出し専用のプロパティじゃないかな?

読み出し専用のプロパティに任意の値を代入することはできません。

ただし、読み出すプロパティを別のものにして?以降を省くことはできたような気がする…。(手元に資料がないのでよく分かりませんorz)

ちなみに今回は関係ないけど読み出し専用のプロパティの値から読み出される値を変更したいときは読み出したプロパティをいったん別の変数に代入してその変数に変更を加えたりする方法もあります。

◎質問者からの返答

読み出し専用なら、変更のしようがないですね。ありがとうございます。


3 ● GEN111
●22ポイント

そのスクリプトの呼び出し前にこんなのを入れるとか。

ページは再読み込みになりますが。

if (location.search != '') {
 location.href = 'http://' + location.hostname + location.pathname ;
}
◎質問者からの返答

再読み込みになるのはまずいんです。

ありがとうございます。


4 ● GEN111
●22ポイント

IE6 と Opera9.23 に関しては

document.location.toString = function() { return location.href.replace(/\?.*$/, '') ; }

で document.location.toString() を入れ替えることができました (Firefox2.0.0.6 はダメでした)。

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ