2012-02-10 1 views
0

戻るボタンを使用してページを入力したときにSafariで起動するbody onload = "..."イベントが発生しないようです。それはFFとIEで正常に動作します。 JavascriptまたはjQueryソリューションはありますか?Safari <body onload>イベントが戻るボタンからトリガーされない

助けてください。

+0

それはクロームで動作しますか? –

+0

'onload'イベントに付随するコードは何をしますか?あなたはイベントがまったく発射されていないと確信していますか?それとも、何も表示されていないだけですか? –

+0

ホルヘピニョ。私はまだクロムを掘り起こしていない。ブラウザで作業中... –

答えて

0

ではなく<body>タグのonload属性を使用して、あなたの代わりにそうように、jQueryを使ってDOM readyイベントを使用して試みることができる:

$(document).ready(function() { 
    // your code here 
}); 

または、簡略版:

$(function() { 
    // your code here 
}); 

これでSafariの問題が解決しなくても、HTMLとJavaScriptを分かりやすく分けることができるので、一般的には良い方法です。

+0

こんにちはアンソニー。私はちょうどこれを試みたが、それもFFとIEで発生する。 –

3

試してみてください。

window.addEventListener("pageshow", function() { 
    alert('page shown'); 
}, false); 

オペラブラウザについては、この記事を読む:これはよく知られているhttp://samuli.hakoniemi.net/onload-issues-with-opera/

+0

zvona、ありがとう、私は今すぐ行くよ... –

+0

Zvona、Ive treid thisしかし何も起こりません。コードサンプルは、私のサイトにカットアンドペーストするのに適していますか?つまり、何かを変更する必要がありますか? –

+0

それはそれのように良いです。 Chromeでテストしたところ、Safariについてはわかりませんでした。 もしも助けがあれば、この記事を読むことができます:http://www.webkit.org/blog/516/webkit-page-cache-ii-unload-event/ – zvona

0

。 Safariを始めとする多くのブラウザではページがキャッシュされ、そのページに戻ると以前の状態に戻ります。ここで

は、このトピックについての良いMDN品です(それはおよそFF 1.5のですが、同様に他のブラウザに適用されなければならない):https://developer.mozilla.org/En/Using_Firefox_1.5_caching

は@zvonaのようなpageshowイベントが提案してみます。

+0

こんにちは、私はSafariとFFでIEを起動するためにページショーを持っています。それがうまくいくかどうか知っていますか?そうでなければ、どのようにブラウザを区別してdoc.readyとpagshowが関数を2回呼び出すのを避けるのですか? –

0

onloadイベントが発生しない場合は、キャッシュ制御を設定する必要があります。

<head> 
<meta charset="utf-8"> 
<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 

または本文にタグを追加します

<iframe style=”height:0px;width:0px;visibility:hidden” src=”about:blank”> 
this frame prevents back forward cache 
</iframe>