JavaScriptに詳しい方にお聞きします。


1)あるページを読み込むとページ履歴を2ページほど戻らせた上で
2)たどりついた先のページの情報をリロードする

 というJavaScriptを組んでいただくことはできるでしょうか。
http://www.hatena.ne.jp/1135160543 の質問でhistory.go(-2); という指定をして成功するところまではいったのですが、これだけだと戻ったさきのページはリロードされていないので…

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:andi No.1

回答回数448ベストアンサー獲得回数0

ポイント30pt

新しいウィンドウを開いてそちらからコントロールすることで対応してみました。


<script>

var win = window.open(’about:blank’);

win.document.write(”<script>”);

win.document.write(”opener.history.go(-2);”);

win.document.write(”opener.history.reload();”);

win.document.write(”<¥/script>”);

</script>

id:complexequality

ありがとうございます。

新しいウィンドウをひらけばできるということですね。

ちょっと新しいウィンドウを開くとなると今回は使用しないと思いますが、勉強になりました。

2005/12/22 02:04:22
id:ito-yu No.2

回答回数323ベストアンサー獲得回数14

ポイント30pt

<body onLoad=”history.go(-2);location.reload();”>

にしたらリロードします。とおもったら、IEとOperaではうまくいったけどFirefoxではうまくいきませんでした。とりあえず参考まで

id:complexequality

ありがとうございます。

firefoxでダメでしたか…いや、でもそれでもつけておく価値はありそうですね。さっそく使わせていただきたいと思います。

2006/01/05 18:00:41
id:ginpei No.3

回答回数40ベストアンサー獲得回数0

ポイント30pt

もし 2 ページ前が編集できるファイルであるという場合であれば、そちらのページの <head></head> 内に次を加えてみて下さい。

(ただし「”」は半角のものにかえること。)


<script type=”text/javascript”><!--

function CheckLastVisiting() {

var sep = ”,”;

var now = new Date();// 現在の時刻

var tmp = document.cookie.split(sep);// Cookie から読み出し、「,」で区切る

for(var i=0; i<tmp.length; i++)

tmp[i] = eval(tmp[i]);// 数値型にする

var d = new Date(tmp[0], tmp[1], tmp[2], tmp[3], tmp[4], tmp[5]);// 前回訪問時刻

if((now.getTime()-d.getTime())/1000 > 3 ) {// 前回より三秒以上経過なら処理

document.cookie = now.getFullYear() + sep + now.getMonth() + sep + now.getDate() + sep

+ now.getHours() + sep + now.getMinutes() + sep + now.getSeconds();// 現在時刻を Cookie に埋め込む

location.reload();// 安心してリロード

}

}

onload = CheckLastVisiting;

// -->

</script>


前にページを開いた時より 3 秒より経っていたなら、ページをリロードします。(自動的に破棄される Cookie を使用。)


2 ページ前のものが管轄外のものなら……やはりウィンドウを開いて操作する以外ないと思います。

ウィンドウを開けない理由にもよりますが、

・画面外に出現する(見えない)

・処理後自動的に閉じる(すぐ消える)

という方法なら利用者はあまり気にならないかもしれません。(セキュリティソフトが反応するかも?)

id:complexequality

詳細な回答をしていただきありがとうございます!

2ページ前のページを編集可能ですので、いまから試してみたいと思います。

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

2006/01/05 18:02:40

コメントはまだありません

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

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

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

回答リクエストを送信したユーザーはいません