
インラインフレームをサイトで使用しているのですが、
インラインフレームって、更新を押すと、最初に指定したページ
<iframe src=a.html></iframe> だと a.html
に戻ってしまうじゃないですか。
それをクッキーを使用して、更新を押しても現在見ているページを表示したいのですが。(クッキーでできるのかな?)
できますでしょうか?教えてください。
また、別の方法でも、上記が可能ならば、教えてください。お願いします。
iframe名を、fffff IDを、fffffid
iframeをおくページを、index.html
iframeで最初に表示されるページを、a.html
リンクでiframe内に表示されるページを、b.html としておきます。
No.3ベストアンサー
- 回答日時:
オンロードタイミングで行ってるので、これでも状況によっては一瞬 a.htmlが表示されます。
が、一応すぐ消して空になるので、試してみてください。
<script type="text/javascript">
var cook_key = "iframesrc"; /* クッキーのキーになる適当な名前 */
window.onload = function(){
if(cook_src) document.getElementById('fffffid').src = '';
var cook_src;
var cookies = document.cookie.split(';');
for(var i=0; i<cookies.length; i++){
if(cookies[i].indexOf(cook_key) >-1){ cook_src = cookies[i].split('='); break; }
}
document.getElementById('fffffid').src = cook_src? cook_src[1] : 'a.html';
}
function setCook(arg){ document.cookie = cook_key + '=' + arg + ';'; }
</script>
他にもJavaScriptからiframeを挿入したりcreateする等もありますが、何を使うにしてもJavaScriptOFFの場合の事を考えて先にiframeを書き込んでおく事を前提にした場合はオンロードタイミングで実行になるので状況によってa.htmlやブランクが表示される可能性はあります。
『一瞬でも表示させたくない』を全てに優先させるのであれば
iframeを打ち出す部分に このスクリプトを書く
<script type="text/javascript">
var cook_key = "iframesrc"; /* クッキーのキーになる適当な名前 */
var cook_src;
var cookies = document.cookie.split(';');
for(var i=0; i<cookies.length; i++){
if(cookies[i].indexOf(cook_key) >-1){ cook_src = cookies[i].split('='); break; }
}
var file = cook_src? cook_src[1] : 'a.html';
document.write('<iframe id="fffffid" name="fffff" src="',file,'"></iframe>')
function setCook(arg){ document.cookie = cook_key + '=' + arg + ';'; }
</script>
<noscript>
<iframe id="fffffid" name="fffff" src="./a.html"></iframe>
</noscript>
No.2
- 回答日時:
とりあえずサンプルです。
iframe表示用リンクが複数あるとして。
<script type="text/javascript">
var cook_key = "iframesrc";
window.onload = function(){
var cook_src;
var cookies = document.cookie.split(';');
for(var i=0; i<cookies.length; i++){
if(cookies[i].indexOf(cook_key) >-1){ cook_src = cookies[i].split('='); break; }
}
if(cook_src){ document.getElementById('fffffid').src = cook_src[1]; }
}
function setCook(arg){ document.cookie = cook_key + '=' + arg + ';'; }
</script>
<a href="./a.html" target="fffff" onclick="setCook(this.href)">test</a>
<a href="./b.html" target="fffff" onclick="setCook(this.href)">test</a>
<iframe id="fffffid" name="fffff" src="./a.html"></iframe>
次回訪問の時の事は書いてないのでクッキーの有効期限を付けていません。
ブラウザを終了させたら期限切れです。
この回答への補足
回答ありがとうございます!
サンプルどおりに設定すると、ちゃんとクッキー出来ました。
しかし、「iframeで最初に表示されるページa.html」が一度表示されてから、
「リンクでiframe内に表示されるページb.html」が表示されるようになります。
a.htmlを表示させずに、b.thmlをすぐに表示するにはどうすればよいでしょうか。
教えてください。
No.1
- 回答日時:
自ドメイン内でのiframeコンテンツとして、
fffffidのcontentWindow.location 属性をリンク命令を押すたびに、書き込み(onClickなどでいいかと思います。)、ページロードの際クッキーを読み出せばできると思います。
簡単にテストしてみましたがヤハリできてました。
この回答への補足
回答ありがとうございます。
javascript超初心者なもので、サンプルなど記載してもらわなければ、
全然わかりません。申し訳ないです。
よろしければ、サンプル等、記載よろしくおねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スライドショーにフェード効果...
-
imgのsrcに値を設定するには
-
c++std::string型をTCHARに変換...
-
MAX関数を使ってからLEFT JOIN...
-
JSPでの画像ファイル表示
-
javascriptテキストBOX色を元に...
-
文字をクリックしたら別の文字...
-
ネストされたチェックボックス...
-
createElementが一瞬で消えてし...
-
ダイアログから画像ファイルは...
-
表示・非表示のスクリプトで、...
-
error LNK2019 未解決のシンボ...
-
MFCで画像を表示させているので...
-
スライダーの枠に動画を収める...
-
CSSで背景を下までのばすには?
-
スクロール可能なチェックボックス
-
【jQuery】2分割レイアウトで、...
-
jqueryを使って無駄なspanタグ...
-
ボタンを押すたびに交互に切り...
-
画像処理 C言語 元画像の幅...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openで値の渡し方を教え...
-
HPB_SCRIPT_ROV_50
-
複数のバナーをリロードする度...
-
プログラムですけど、問題はsin...
-
続き] divの背景画像を、徐々...
-
JavaScript onClick
-
これはどんなJavaScriptなので...
-
画像をクリックして変数に値を代入
-
リンク前後で画像を変えたい
-
【jQuery】複数の画像の読み込...
-
jQueryでサーバー上のファイル...
-
setAttributeによる画像の差し替え
-
CSVファイルからの読取について
-
for文について
-
JAVAで画像をボタンで切り替え...
-
【javascript】ロールオーバー...
-
一定時間で画像とリンク先を変...
-
インラインフレームでのクッキ...
-
【JavaScript】FireFoxで画像の...
-
← →クリックで前後できるスライ...
おすすめ情報