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の値でないものを渡すことはできますか?

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

回答の条件
  • 1人2回まで
  • 登録:2007/08/27 07:31:43
  • 終了:2007/09/03 07:35:03

回答(4件)

id:Yota No.1

Yota回答回数453ベストアンサー獲得回数282007/08/27 08:36:36

ポイント23pt

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

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

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

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

var shorturl =

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

id:dingding

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

2007/08/27 10:17:07
id:Marine-Blue No.2

Marine-Blue回答回数237ベストアンサー獲得回数122007/08/27 10:14:45

ポイント23pt

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

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

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

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

id:dingding

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

2007/08/27 10:19:30
id:GEN111 No.3

GEN111回答回数472ベストアンサー獲得回数582007/08/27 11:15:22

ポイント22pt

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

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

if (location.search != '') {
  location.href = 'http://' + location.hostname + location.pathname ;
}
id:dingding

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

ありがとうございます。

2007/08/27 15:02:05
id:GEN111 No.4

GEN111回答回数472ベストアンサー獲得回数582007/08/28 17:43:01

ポイント22pt

IE6 と Opera9.23 に関しては

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

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

id:dingding

ありがとうございます。

2007/08/28 18:16:43
  • id:Yota
    1 回答者です。
    間違えました。すいません。
    ページを置き換えたら同でしょう。
    if(location.search != '')
    location.replace('http://' + location.hostname + location.pathname) ;
  • id:dingding
    コメントありがとうございます。

    ページはそのままで、渡す値だけ変えることができればと考えていましたので、遷移してしまうのは、ちょっと困りますね。

    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません