

jQuery初心者です。
ヘッダとナビを設置したindex.htmlにコンテンツのhtmlをloadするサイトを作っています。
index.htmlにJquery初期設定でtop.htmlをloadし、その後ナビで選択、A.html B.htmlをloadするようにしています。
そして、loadしたA.htmlの中にリンクを設定してPDFを表示する箇所があるのですが、targetを_selfに設定していると、ブラウザバックをした時にsafari,fierfoxではA.htmlの表示されたページに戻るのですが、chromeでは初期設定のtop.htmlのページになります。
index.htmlに設置されたjQueryを再度読むか読まないかの差だということまでは理解できるのですが、解決法がわかりません。
chromeでも他のブラウザのように、A.htmlに戻りたいのですがどうすればいいのでしょうか。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
もし、読み込み時やイベントの記述法を変えてもうまくいかず、なおかつ、どうしてもload()でということであれば、「cookieを使って、ブラウザに状態を覚えこませる方法」が、うまくいくかどうかは未確認ながら、検討の余地があるかもしれません。
具体的には、ナビで移動するたびに、その情報をcookieに入れ、読み込み時(document ready時)にはその情報を見て、そのページを出すようにする、というものです。
これなら、戻るボタン後にJSの状態が保持されるブラウザなら、そのままでいいわけですし、再度読み込み(初期化)されてしまうブラウザは、上記のCookieでカバーできるかもしれません。
Cookieは下記のような方法で簡単に実装できると思います:
http://www.tam-tam.co.jp/tipsnote/javascript/pos …
注意点としては、戻るボタンで戻った時だけでなく、普通にアクセスした時などにも、最後に表示した(=cookieに保存されている)ページが出てきてしまいかねませんので、Cookieの有効期限を、ブラウザを閉じるまでにするなど、対策が必要と思います。
・・・あと、ナビで移動する以外にも、ページ内に「ホームページに戻る」ようなリンクがある場合は、それもナビ同様、JSにする必要が出てきますね。。
私としてはやはり、No1でご回答した原始的な構成をお勧めしたいところですが、load()で表示する方式をお採りになる合の一つのアイデアとして、ご参考になれば幸いです。
色々とご親切にありがとうございます。
あれからトライしています。
なかなか技術が間に合わず怪しい動きですが,引き続き修正を加えてみます。
結果報告をしたかったのですが,時間がたってしまいましたので,一旦お礼をさせて頂こうと思いました。
教えて頂いたdreamweaverの方法も平行して検討していきます。
ありがとうございました。
No.1
- 回答日時:
こんにちは。
これは恐らく、戻るボタン後のJSの状態をどうするかという件のようですね。
具体的なコードが分からないので、未確認の推測ですが、まずは初期設定(ロード時のことですよね)コードと、ナビ選択時のイベントコードを書く場所や、書き方によって、改善できるかどうか試してみることをお勧めします。
その点では、ひょっとしたら下記の記事が参考になるかも知れません:
http://qiita.com/dayflower/items/5a8182b85ad3602 …
(この場合はChromeやFirefoxはOK、IEだけNGのようですが)
下記の記事は逆に戻るボタン後の状態を初期で統一したい場合のようですが、やはり参考になる可能性があります。
http://nmi.jp/archives/273
ただ、一点だけ、そもそも論になってしまうのですが、こういうのは、一旦うまくいっても、ブラウザによっての挙動が将来的にあまり安定しない可能性もありますので、もしこの構成で本格的なサイトを作られる予定の場合は、根本的な構成変更を検討された方が良いかも知れません。
具体的には、各ページを普通にナビごと用意して、ナビでの移動はJSを使わずに、シンプルなリンクにするという、ごく単純で原始的な構成です。
同じようなナビがあるHTMLをページ分用意するのは、一見すると冗長ですが、一定規模になるとdreamweaverなどで一括更新するなど、更新作業がさほど苦にならない方法もあります。また、Webシステムが好きであれば、PHPなどで共通部分をまとめてしまう方法もあります。SEO的にもJSで移動するより普通のリンクの方が良いと思います。
上記はいずれも個人的な所感ですので、間違いなどありましたら恐縮ですが、ご参考になれば幸いです。
takkun3728さん、ありがとうございます。
おっしゃる通りです。
$(document).ready(
function(){
$('ul.navi li:first>a').addClass('selected'); ①
$('.content').load(
$('ul.navi li:first>a').attr('href'));
$('ul.navi a').click(function(e){ ②
var ss=$(this).parents('li').children('a')
if($(this).hasClass('pass')){
e.preventDefault();
} else if (!$(this).hasClass('selected')){
$('ul.navi a').removeClass('selected');
$(ss).addClass('selected');
$('.content').load($(this).attr('href'));
}
else {
$(ss).addClass('selected'); //
$('.content').load($(this).attr('href'));
}
e.preventDefault();
});
});
としてまして、.content部にロードするという方法なのですが、ブラウザバックをすると、safari等ですと②の選択時に戻るのですが、
chormは①まで戻るのか初期に設定しているホームのページをロードしてしまいます。
教えたいだだいたページを参考にもう少し考えてみます。
それと共にアドバイスも有難うございます。一つ一つのページにナビを埋め込むという方法を以前は取っていたのですが、load()で
表示する方がスマートなのでは、、とやってみていました。単純に便利だな、と思って作り始めたのですが、このような分からない事が出てきて頭を抱えています。
自身の力量も比較して検討してみます。有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS Chrome のキャッシュについて 3 2022/05/26 07:50
- ホームページ作成・プログラミング メールフォームで送信すると「通信に失敗しました。ページの再読み込みを...」で送信できません。 2 2023/05/26 18:11
- iPad htmlファイルを翻訳したい 2 2022/11/07 23:50
- Chrome(クローム) ブラウザのブックマークの同期の仕方についてお尋ねします。 1 2022/08/10 16:44
- HTML・CSS HTMLとCSS(ブラウザ関連)について質問です。 1 2023/03/07 08:07
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ハムスター島」「魔法のiらん...
-
ボタンにリンクをかけたら、ボ...
-
戻るボタンの作成
-
OKWaveからの被リンクは有効?...
-
リンクの貼られた文字のURL情報...
-
グーグルでスパム認定されてい...
-
逆マウスストーカーってあります?
-
『工事中』の素材
-
Yahooのリンクを使用する方法
-
リンクについて
-
ドリームウィーバーを使ってペ...
-
リンク先を新しいタブで開けな...
-
iFrame内の変数を、親フレーム...
-
リンク切れを判断する方法
-
Flashボタンの保存先が設定でき...
-
同ページ内でリンクの文字色を...
-
被リンクを無料で増やすための...
-
boxの表示・非表示
-
javascriptでスライドするペー...
-
このページの欠点をどんどん指...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Webサイト内に埋め込んだmp4動...
-
Strutsでページネーションを実...
-
HTMLのリンクの色をクリックす...
-
excel VBA でjava のボタンを押...
-
a:hoverで設定した内容をクリッ...
-
スマホでボタンがhoverの状態か...
-
jquery loadでページを読み込...
-
リンク先を新しいタブで開けな...
-
インフレーム内のラベルに飛び...
-
リンク切れを判断する方法
-
戻るボタンの作成
-
画面のどこかをクリックすると
-
被リンクを増やすには
-
携帯での『ひとつ前に戻る』
-
被リンクを無料で増やすための...
-
同ページ内でリンクの文字色を...
-
テキストリンクにマウスが重な...
-
webbrowserの読込完了が反応しない
-
C++で作成したDLLを vb.net か...
-
フェレットプラス(Ferret PLUS)...
おすすめ情報