SORU
18 Mart 2012, Pazar


Bir oluşturmak için '' eğer bir bağlantı için Kullanıcı alır bu link'sekme ya da pencere yok tarihi Geri dönmek Nasıl?Javascript kullanarak:

EDİT-2:Cevapların hiçbiri çalışmıyor gibi görünüyor. Ben daha önce bu sorunun cevabı olarak işaretlenmiş bile. Herhangi bir yardım için teşekkür ederiz. Teşekkürler.

İlk olarak, Google'da var nasıl bir 'Geri kullanıcı bir önceki sayfaya dönmek için izin verir, ve bu, bunu yapmanın iki yolu var' link: . Git oluşturma

<a href="javascript:history.go(-1)">[Go Back]</a>

ve...

<a href="#" onclick="history.go(-1);return false;">[Go Back]</a>

Bu ikisinden hangisi daha iyi bir seçim mi? Ve neden? (Ayrıca, lütfen tarayıcı uyumluluğu biraz ışık tutacak.)

Bu soruyu bir yarısı. Şimdi eğer kullanıcı ziyaret ediyor ilk sayfa benim, 'Geri' bağlantı, değil mi? Git (Orada veya tab. pencere) için önceden varolan bir geçmişi yok. Bu durumda, geri dönüş için link istiyorum http://example.com için Kullanıcı alır.

Yani eğer geçmişi var, kullanıcı bir önceki sayfaya alınacak, yoksa değil mi http://example.com almış.

Nasıl yapabilirim? Birisi yardımcı olabilir umuyoruz.

DÜZENLEME:Lütfen JavaScript biliyorum, bu yüzden lütfen cevabınız açıklayıcı olsun diye konuşmuyorum unutmayın. Teşekkürler.

CEVAP
18 Mart 2012, Pazar


Sen sayfaları belirli bir oturum içinde toplam ziyaret edilen miktarı içerir. window.history.length kontrol edin:

8* *(İnteger)

Salt okunur. Döner şu anda yüklü sayfa dahil oturum tarihi öğeleri sayısı. Bir sayfa yeni bir sekmede yüklü örneğin, bu özelliği 1 değerini döndürür.Cite 1

Bir kullanıcı sayfanızı ziyaret eder, bazı bağlantılar üzerinde tıklama ve geri gider diyelim:

www.mysite.com/index.html <-- first page and now current page                  <---- 
www.mysite.com/about.html                                                           |
www.mysite.com/about.html#privacy                                                   | 
www.mysite.com/terms.html <-- user uses backbutton or your provided solution to go back

Şimdi window.history.length 4. Tarihi öğeler güvenlik nedeni ile hareket edemiyor. Aksi takdirde kullanıcı tarihi okuyabilir ve online bankacılık oturum alabilir numarası ya da diğer hassas bilgileri.

Eğer bir önceki sayfaya belirli bir süre içinde yüklü değil eğer hiç hareket etmesini sağlayacak bir zaman aşımı ayarlayabilirsiniz. Kullanıcı yavaş İnternet bağlantısı ve zaman aşımı süresi kısa ise, bu yöntem varsayılan konumu her zaman için onu yönlendirir:

window.goBack = function (e){
    var defaultLocation = "http://www.mysite.com";
    var oldHash = window.location.hash;

    history.back(); // Try to go back

    var newHash = window.location.hash;

    /* If the previous page hasn't been loaded in a given time (in this case
    * 1000ms) the user is redirected to the default location given above.
    * This enables you to redirect the user to another page.
    *
    * However, you should check whether there was a referrer to the current
    * site. This is a good indicator for a previous entry in the history
    * session.
    *
    * Also you should check whether the old location differs only in the hash,
    * e.g. /index.html#top --> /index.html# shouldn't redirect to the default
    * location.
    */

    if(
        newHash === oldHash &&
        (typeof(document.referrer) !== "string" || document.referrer  === "")
    ){
        window.setTimeout(function(){
            // redirect to default location
            window.location.href = defaultLocation;
        },1000); // set timeout in ms
    }
    if(e){
        if(e.preventDefault)
            e.preventDefault();
        if(e.preventPropagation)
            e.preventPropagation();
    }
    return false; // stop event propagation and browser default event
}
<span class="goback" onclick="goBack();">Go back!</span>

typeof(document.referrer) !== "string" tarayıcı satıcıları yönlendirme güvenlik nedeniyle (oturum sağlamalarının, özel URL) nedeniyle devre dışı bırakmak önemlidir, unutmayın. Ama bir yönlendirme olduğunu tespit ettik ve eğer boşsa, bir önceki sayfaya (aşağıdaki nota bakın) yok hayır, söylemek Kaydet muhtemelen. Hala basit bir yönlendirme kullanmak için daha zaman aşımı kullanmak için daha güvenli, o yüzden biraz garip tarayıcı cilvesi oluyor olabilir.

DÜZENLEME:Ki bu oturum için başka bir giriş tarihi ekler <a href='#'>...</a>,. Daha iyi <span> a veya başka bir öğeyi kullanın. typeof document.referrer page (ben)bir çerçeve içinde ise her zaman "string" ve boş olduğunu unutmayın.

Ayrıca Bkz:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Britec09

    Britec09

    4 Mart 2009
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006