it-swarm-tr.com

Başka bir web sayfasına nasıl yönlendiririm?

JQuery veya salt JavaScript kullanarak kullanıcıyı bir sayfadan diğerine nasıl yönlendirebilirim?

7729
venkatachalam

Bir jQuery kullanarak sadece yönlendirme değil

jQuery gerekli değildir ve window.location.replace(...) en iyi HTTP yönlendirmesini simüle eder.

window.location.replace(...)window.location.href işlevini kullanmaktan daha iyidir, çünkü replace() kaynak sayfayı oturum geçmişinde tutmaz, böylece kullanıcı hiç bitmeyen bir geri düğmesi fiyaskounda sıkışıp kalmaz.

Bir bağlantıya tıklayarak birini simüle etmek istiyorsanız,location.href

Bir HTTP yönlendirmesini simüle etmek istiyorsanız,location.replace

Örneğin:

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";
13935
Ryan McGeary

UYARI: Bu cevap sadece olası bir çözüm olarak verilmiştir; Açıkçası değil en iyi çözüm, çünkü jQuery gerektiriyor. Bunun yerine, saf JavaScript çözümünü tercih edin.

$(location).attr('href', 'http://stackoverflow.com')
1570
Boris Guéry

Standart "Vanilya" Sayfayı yönlendirmek için JavaScript yolu:

window.location.href = 'newPage.html';


Eğer buradaysanız, çünkü yeniden yönlendirirken kaybediyor HTTP_REFERER, okumaya devam edin:


Aşağıdaki bölüm, birçok güvenli önlemden biri olarak HTTP_REFERER kullananlar içindir (harika bir koruyucu önlem olmasa da). Internet Explorer 8 veya daha düşük kullanıyorsanız, herhangi bir JavaScript sayfa yönlendirmesi (location.href, vs.) kullanılırken bu değişkenler kaybolur.

Aşağıda IE8 & lower alternatifini uygulayacağız, böylece HTTP_REFERER'i kaybetmeyiz. Aksi takdirde, hemen hemen her zaman window.location.href işlevini kullanabilirsiniz.

HTTP_REFERER (URL yapıştırma, oturum vb.) İle yapılan testler can bir isteğin meşru olup olmadığını söylemekte yardımcı olur. (Not:, bu hakemleri dolambaçla/dolandırıp, yorumlarda droop'un bağlantısında da belirtildiği gibi) da var)


Basit tarayıcılar arası test çözümü (Internet Explorer 9+ ve diğer tüm tarayıcılar için window.location.href'e dönüş)

Kullanım: redirect('anotherpage.aspx');

function redirect (url) {
    var ua        = navigator.userAgent.toLowerCase(),
        isIE      = ua.indexOf('msie') !== -1,
        version   = parseInt(ua.substr(4, 2), 10);

    // Internet Explorer 8 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
    else { 
        window.location.href = url; 
    }
}
579

Bunu yapmanın birçok yolu vardır.

// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'

// window.history
window.history.back()
window.history.go(-1)

// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')


// Probably no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';

// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')
392
Govind Singh

Bu her tarayıcı için işe yarar:

window.location.href = 'your_url';
302
Fred

Yapmaya çalıştığın şey hakkında biraz daha açıklayıcı olsaydın yardımı olurdu. Disk belleği verileri oluşturmaya çalışıyorsanız, bunu nasıl yaptığınıza ilişkin bazı seçenekler var. Doğrudan ulaşmak istediğiniz her sayfa için ayrı bağlantılar oluşturabilirsiniz.

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

Örnekteki geçerli sayfanın kodda ve CSS'de farklı şekilde ele alındığını unutmayın.

Sayfalanmış verilerin AJAX aracılığıyla değiştirilmesini istiyorsanız, burası jQuery'nin geleceği yerdir. Yapmanız gereken, farklı bir sayfaya karşılık gelen bağlantı etiketlerinin her birine bir tıklama işleyicisi eklemek. Bu tıklama işleyicisi, sonraki sayfaya AJAX ile giren ve tabloyu yeni verilerle güncelleyen bazı jQuery kodlarını çağırır. Aşağıdaki örnekte, yeni sayfa verilerini döndüren bir web servisiniz olduğu varsayılmaktadır.

$(document).ready( function() {
    $('a.pager-link').click( function() {
        var page = $(this).attr('href').split(/\?/)[1];
        $.ajax({
            type: 'POST',
            url: '/path-to-service',
            data: page,
            success: function(content) {
               $('#myTable').html(content);  // replace
            }
        });
        return false; // to stop link
    });
});
280
tvanfosson

Ayrıca, location.replace(URL) işlevinin en iyi yol olduğunu düşünüyorum, ancak arama motorlarına yönlendirmeniz hakkında bilgi vermek istiyorsanız (yönlendirmeyi görmek için JavaScript kodunu analiz etmezler) web sitenize rel="canonical" meta etiketini eklemelisiniz.

HTML yenileme meta etiketi içeren noscript bölümü eklemek de iyi bir çözümdür. Yönlendirmeleri oluşturmak için bu JavaScript yeniden yönlendirme aracını kullanmanızı öneririz. Ayrıca, HTTP yönlendiricisini geçmek için Internet Explorer desteği de vardır.

Gecikmeden örnek kod şöyle görünür:

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->
237
Patartics Milán

Ancak, birisi ana sayfaya geri yönlendirmek istiyorsa, aşağıdaki snippet'i kullanabilir.

window.location = window.location.Host

Geliştirme, evreleme ve üretim olarak üç farklı ortamınız varsa, yararlı olacaktır.

Bu pencereyi veya window.location nesnesini, yalnızca bu kelimeleri Chrome Konsolu'na veya Firebug 'Konsoluna koyarak yapabilirsiniz.

212
Nadeem Yasin

JavaScript, tarayıcının adres çubuğunda görüntülenen geçerli URL'yi almak ve değiştirmek için birçok yöntem sunar. Tüm bu yöntemler, Window nesnesinin bir özelliği olan Location nesnesini kullanır. Geçerli URL’ye sahip yeni bir Konum nesnesi oluşturabilirsiniz.

var currentLocation = window.location;

Bir URL'nin Temel Yapısı

<protocol>//<hostname>:<port>/<pathname><search><hash>

enter image description here

  1. Protokol - İnternetteki kaynağa erişmek için kullanılacak protokol adını belirtir. (HTTP (SSL olmadan) veya HTTPS (SSL ile))

  2. ana bilgisayar adı - Ana bilgisayar adı, kaynağa sahip olan Ana Bilgisayarı belirtir. Örneğin, www.stackoverflow.com. Bir sunucu, Ana Bilgisayarın adını kullanarak hizmetler sunar.

  3. port - Bir İnternet'e veya başka bir ağ mesajının bir sunucuya ulaştığında iletileceği belirli bir işlemi tanımak için kullanılan bir bağlantı noktası numarası.

  4. yol adı - Yol, Web istemcisinin erişmek istediği Ana Bilgisayardaki belirli kaynak hakkında bilgi verir. Örneğin, stackoverflow.com/index.html.

  5. query - Bir sorgu dizesi, yol bileşenini izler ve kaynağın bir amaç için kullanabileceği bir bilgi dizisi sağlar (örneğin, bir arama için parametreler olarak veya işlenecek veriler olarak).

  6. karma - Bir URL'nin çapa kısmı, karma işaretini (#) içerir.

Bu Konum nesnesi özellikleriyle, bu URL bileşenlerinin tümüne erişebilirsiniz

  1. hash -Bir URL'nin çapa kısmını ayarlar veya döndürür.
  2. Ana Bilgisayar - Bir URL'nin ana bilgisayar adını ve bağlantı noktasını ayarlar veya döndürür.
  3. hostname - Bir URL’nin ana bilgisayar adını ayarlar veya döndürür.
  4. href - URL'nin tamamını ayarlar veya döndürür.
  5. pathname -Bir URL'nin yol adını ayarlar veya döndürür.
  6. port - Sunucunun bir URL için kullandığı port numarasını ayarlar veya döndürür.
  7. protokol -Bir URL’nin protokolünü ayarlar veya döndürür.
  8. search -Bir URL'nin sorgu bölümünü ayarlar veya döndürür

Şimdi Bir sayfayı değiştirmek veya kullanıcıyı başka bir sayfaya yönlendirmek istiyorsanız, bunun gibi Location nesnesinin href özelliğini kullanabilirsiniz.

Location nesnesinin href özelliğini kullanabilirsiniz.

window.location.href = "http://www.stackoverflow.com";

Konum Nesnesi ayrıca bu üç yönteme sahip

  1. assign () - Yeni bir belge yükler.
  2. reload () - Geçerli belgeyi yeniden yükler.
  3. replace () - Geçerli belgeyi yenisiyle değiştirir

Assign () yöntemini kullanabilir ve bu gibi diğer sayfalara yönlendirmek için yöntemleri de kullanabilirsiniz.

location.assign("http://www.stackoverflow.com");

location.replace("http://www.stackoverflow.com");

Nasıl atanır () ve replace () farklıdır- replace () yöntemi ile assign () yöntemi () arasındaki fark, replace () öğesinin geçerli URL'sini kaldırmasıdır. Belge geçmişinden bir belgeye geri döndüğünüzde, orijinal belgeye geri dönmek için "geri" düğmesini kullanmanın mümkün olmadığı anlamına gelir.Yeni bir belge yüklemek istiyorsanız geri dönme seçeneğini belirtmek istiyorsanız, ata () yöntemini kullanın. orijinal belgeye.

Konum nesnesi href özelliğini jQuery kullanarak da değiştirebilirsiniz

$(location).attr('href',url);

Ve böylece kullanıcıyı başka bir URL'ye yönlendirebilirsiniz.

199
Nikhil Agrawal

Temel olarak jQuery sadece bir JavaScript çerçevesidir ve bu durumda yeniden yönlendirme gibi bazı şeyleri yapmak için, sadece saf JavaScript kullanabilirsiniz, bu durumda Vanilla JavaScript kullanarak 3 seçeneğiniz vardır :

1) replace konumunu kullanarak, sayfanın geçerli geçmişini değiştirir, orijinal sayfaya geri dönmek için geri düğmesini kullanmanın mümkün olmadığı anlamına gelir.

window.location.replace("http://stackoverflow.com");

2) assign konumunu kullanarak bu, sizin için geçmişi tutacaktır ve geri düğmesini kullanarak orijinal sayfaya geri dönebilirsiniz:

window.location.assign("http://stackoverflow.com");

3) Bu önceki yöntemlerden birini kullanmanızı öneririm, ancak bu saf JavaScript kullanarak üçüncü seçenek olabilir:

window.location.href="http://stackoverflow.com";

Ayrıca jQuery'de bir işlevi yazabilir, ancak yalnızca bir satırlık saf JavaScript işlevi olduğu için önerilmez, ayrıca pencere kapsamı içindeyseniz yukarıdaki işlevlerin tümünü penceresiz kullanabilirsiniz, örneğin window.location.replace("http://stackoverflow.com");location.replace("http://stackoverflow.com"); olabilir

Ayrıca hepsini aşağıdaki resimde göstereceğim:

location.replace location.assign

188
Alireza

Sadece window.location kullanarak ayarlamak mümkün olmalıdır.

Örnek:

window.location = "https://stackoverflow.com/";

İşte konuyla ilgili geçmiş bir yazı:

Başka bir web sayfasına nasıl yönlendiririm?

188
Newse

Başlamadan önce jQuery, DOM manipülasyonu için kullanılan bir JavaScript kütüphanesidir. Bu nedenle, sayfa yönlendirmesi için jQuery kullanmamalısınız.

Jquery.com'dan bir alıntı:

JQuery, eski tarayıcı sürümlerinde büyük sorunlar olmadan çalışabilirken, bunlarda jQuery'yi aktif olarak test etmiyoruz ve genellikle içinde görünen hataları gidermiyoruz.

Burada bulundu: https://jquery.com/browser-support/

Bu nedenle, jQuery geriye dönük uyumluluk için bir sonuç ve her şey yolunda bir çözüm değildir.

Ham JavaScript kullanarak aşağıdaki çözüm tüm tarayıcılarda çalışır ve uzun süredir standart olduğundan, tarayıcılar arası destek için herhangi bir kütüphaneye ihtiyacınız yoktur.

Bu sayfa 3000 milisaniyeden sonraGooglesayfasına yönlendirilecektir.

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

Farklı seçenekler aşağıdaki gibidir:

window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL

window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

Yenileme kullanılırken, geri düğmesi hiçbir zaman geçmişte olmadığı gibi yönlendirme sayfasına geri dönmez. Kullanıcının yönlendirme sayfasına geri dönmesini istiyorsanız, window.location.href veya window.location.assign komutlarını kullanın. Kullanıcının yönlendirme sayfasına geri dönmesini sağlayan bir seçenek kullanırsanız, yönlendirme sayfasına girdiğinizde sizi geri yönlendireceğini unutmayın. Yönlendirmeniz için bir seçenek seçerken bunu göz önünde bulundurun. Sayfanın yalnızca kullanıcı tarafından bir işlem yapıldığında yönlendirildiği koşullar altında, sayfanın geri düğmesi geçmişinde olması doğru olacaktır. Ancak, sayfa otomatik yönlendirmeleri yapıyorsa, yerine kullanmanız gerekir, böylece kullanıcı yönlendirmeyi gönderdiği sayfaya geri dönmek zorunda kalmadan geri düğmesini kullanabilir.

Meta verilerini, aşağıdaki gibi sayfa yönlendirmeyi çalıştırmak için de kullanabilirsiniz.

META Yenile

<meta http-equiv="refresh" content="0;url=http://evil.com/" />

META Konumu

<meta http-equiv="location" content="URL=http://evil.com" />

BASE Korsanının Kaçması

<base href="http://evil.com/" />

Şüphesiz müşterinizi gitmek istemedikleri bir sayfaya yönlendirmek için daha pek çok yöntem bu sayfada bulunabilir (bunlardan biri jQuery'ye bağımlı değildir):

https://code.google.com/p/html5security/wiki/RedirectionMethods

Ayrıca şunu belirtmek isterim ki, insanlar rastgele yönlendirilmekten hoşlanmazlar. Sadece ihtiyaç duyulduğunda insanları yönlendir. İnsanları rastgele yönlendirmeye başlarsanız, bir daha asla sitenize gitmezler.

Bir sonraki bölüm varsayımsaldır:

Ayrıca, kötü amaçlı bir site olarak da haberdar olabilirsiniz. Bu durumda, insanlar sitenize bir bağlantıyı tıkladığında, kullanıcılar tarayıcısı onları sitenizin kötü niyetli olduğu konusunda uyarabilir. Aynı zamanda, insanların sitenizde kötü bir deneyim yaşadıklarını bildirmesi durumunda, arama motorları puanınızı düşürmeye başlayabilir.

Lütfen yönlendirmelere ilişkin Google Web Yöneticisi Yönergelerini inceleyin: https://support.google.com/webmasters/answer/2721217?hl=tr&ref_topic=6001971

İşte sizi sayfadan ayıran eğlenceli küçük bir sayfa.

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

İki sayfa örneğini birlikte birleştirirseniz, kullanıcılarınızın sitenizi bir daha asla kullanmak istemeyeceğinin garantisini veren bir bebek yönlendirmesi döngüsüne sahip olursunuz.

158
Patrick W. McMahon
var url = 'asdf.html';
window.location.href = url;
157
user188973

Bunu jQuery olmadan yapabilirsiniz:

window.location = "http://yourdomain.com";

Ve sadece jQuery istiyorsanız o zaman gibi yapabilirsiniz:

$jq(window).attr("location","http://yourdomain.com");
138
ScoRpion

Bu, jQuery ile çalışır:

$(window).attr("location", "http://google.fr");
137
xloadx

# HTML Sayfa Yönlendirme jQuery/JavaScript Kullanarak

Bu örnek kodu deneyin:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

Eğer tam bir URL’yiwindow.location = "www.google.co.in";olarak vermek istiyorsanız.

84
Sakthi Karthik

Bu satırı kodunuza koymanız gerekir:

$(location).attr("href","http://stackoverflow.com");

Eğer jQuery'niz yoksa, JavaScript ile gidin:

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
77
Ashish Ratan

Öyleyse soru, nasıl bir yönlendirme sayfası yapılacağı ve bir web sitesine nasıl yönlendirileceği değil mi?

Bunun için sadece JavaScript kullanmanız gerekir. İşte dinamik bir yönlendirme sayfası oluşturacak küçük bir kod.

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

Yani, bu pasajı sadece web sitenizdeki bir redirect/index.html dosyasına koyduğunuzu söyleyin.

http://www.mywebsite.com/redirect?url=http://stackoverflow.com

Ve eğer bu bağlantıya giderseniz, sizi otomatik olarak stackoverflow.com adresine yönlendirecektir.

Belgelere Bağlantı

Ve bu şekilde Basit JavaScript’li bir yönlendirme sayfası

Düzenle:

Unutulmaması gereken bir şey var. Koduma, window.location.replace ekledim, çünkü bir yönlendirme sayfasına uyuyor sanırım, ancak, window.location.replace kullanırken ve yönlendirilmiş olduğunuzu bilmelisiniz, tarayıcınızın geri düğmesine bastığınızda değil yönlendirme sayfasına geri döndü ve bundan önceki sayfaya geri dönecek, bu küçük demo şemasına bir göz atın.

Örnek:

İşlem: evinizi depolar => sayfayı google’a yönlendirir => google

Google’dayken: google => tarayıcıda geri düğmesi => Evde mağaza

Yani, bu sizin ihtiyaçlarınıza uygunsa, her şey yolunda olmalı. Yönlendirme sayfasını tarayıcı geçmişine eklemek istiyorsanız, bunu değiştirin

if( url ) window.location.replace(url);

ile

if( url ) window.location.href = url;
75
iConnor

Tıklama işlevinizde, sadece ekleyin:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});
70
Swaprks

***** ORİJİNAL SORU OLDU - "JQUERY KULLANIMI NASIL KENDİ KEŞFEDE", BUNA CEVAP UYGULAMALARI JQUERY >> TAMAMI KULLANIM KILAVUZU *****

Sadece JavaScript içeren bir sayfaya yönlendirmek için:

  window.location.href = "/contact/";

Veya gecikmeye ihtiyacınız varsa:

setTimeout(function () {
  window.location.href = "/contact/";
}, 2000);   // Time in milliseconds

jQuery, kolayca bir web sayfasından eleman seçmenize olanak sağlar. Bir sayfada istediğiniz herhangi bir şeyi bulabilir ve daha sonra özel efektler eklemek, kullanıcı işlemlerine tepki vermek veya seçtiğiniz öğenin içinde veya dışında içerik göstermek ve gizlemek için jQuery öğesini kullanabilirsiniz. Tüm bu görevler, bir eleman veya olayın nasıl seçileceğini bilmekle başlar .

     $('a,img').on('click',function(e){
         e.preventDefault();
         $(this).animate({
             opacity: 0 //Put some CSS animation here
         }, 500);
         setTimeout(function(){
           // OK, finished jQuery staff, let's go redirect
           window.location.href = "/contact/";
         },500);
     });

Birinin 10000 kod satırı olan bir komut dosyası/eklenti yazdığını düşünün ?! JQuery ile bu koda sadece bir ya da iki satır ile bağlanabilirsiniz.

69
SergeDirect

Bunu dene:

location.assign("http://www.google.com");

Örneğin kod pasajı .

58
tilak

jQuery gerekli değildir. Bunu yapabilirsiniz:

window.open("URL","_self","","")

Bu kadar kolay!

Bir HTTP isteği başlatmanın en iyi yolu document.loacation.href.replace('URL') 'dır.

54
MayorMonty

İlk önce doğru yaz. Bir uygulama içinde başka bir bağlantı için uygulamanızdan başka bir bağlantı için gezinmek istiyorsunuz. İşte kod:

window.location.href = "http://www.google.com";

Ve eğer uygulamanızdaki sayfalarda gezinmek istiyorsanız, isterseniz kodum da var.

51
Anup

JQuery'de şu şekilde yönlendirme yapabilirsiniz:

$(location).attr('href', 'http://yourPage.com/');
50
Azam Alvi

JavaScript ve jQuery'de bir sayfayı başka bir sayfaya yönlendirmek için aşağıdaki kodu kullanabiliriz:

window.location.href="http://google.com";
window.location.replace("page1.html");
43
user2496033

JavaScript:

window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

JQuery:

var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window
42
lalithkumar

ECMAScript 6 + jQuery, 85 bayt

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

Lütfen beni öldürme, bu bir şaka. Bu bir şaka. Bu bir şaka.

Bu, “jQuery kullanarak” bir çözüm istediği anlamında “bu soruna bir cevap sağladı” anlamına geliyordu.

Ferrybig'in görünüşe göre açıklanacak şakaya ihtiyacı var (hala şaka yapıyorum, inceleme formunda sınırlı seçenek olduğundan eminim),

Diğer cevaplar, gereksiz yere location veya window nesnelerinde jQuery'nin attr() işlevini kullanıyor.

Bu cevap da kötüye, ama daha saçma bir şekilde. Konumu ayarlamak için kullanmak yerine, konumu ayarlayan bir işlevi almak için attr() işlevini kullanır.

İşlev, jQuery'de hiçbir şey olmamasına rağmen jQueryCode olarak adlandırılır ve somethingCode işlevini çağırmak, özellikle de bir dil bile olmadığı zaman korkunç olur.

"85 bayt", Code Golf'a referanstır. Golf, açık kod kodları dışında yapmanız gereken bir şey değildir ve ayrıca bu cevap aslında golf değildir.

Temel olarak, cringe.

42
1j01

İşte bir zaman gecikmeli yönlendirme. Gecikme süresini istediğiniz şekilde ayarlayabilirsiniz:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>
39
Stefan Gruenwald

Bunu yapmanın üç ana yolu vardır.

window.location.href='blaah.com';
window.location.assign('blaah.com');

ve...

window.location.replace('blaah.com');

Sonuncusu en iyisidir, geleneksel bir yönlendirme için, çünkü arama geçmişinize yönlendirilmeden önce gittiğiniz sayfayı kaydetmez. Ancak, sadece JavaScript içeren bir sekme açmak istiyorsanız, yukarıdakilerden herhangi birini kullanabilirsiniz. 1

EDIT: window öneki isteğe bağlıdır.

36
Ben

Sadece bu saçmalığı başka bir daha yeni jQuery yöntemiyle güncellemem gerekti:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);
36
Epiphany

Aşağıdaki kodu PHP, HTML veya jQuery bölümünden sonra yazın. PHP veya HTML bölümünün ortasındaysa, <script> etiketini kullanın.

location.href = "http://google.com"
35
Bidyut

bir sayfayı veya URL'yi yönlendirmek için jQuery kodu

İlk Yol

Bir sayfayı yönlendirmek için jQuery kodu. Bu kodu $ (document) .ready () işlevine koyduğum için sayfa yüklenir yüklenmez çalışacaktır.

var url = "http://stackoverflow.com";
$(location).attr('href',url);

Bir URL'yi değişken kullanmak yerine doğrudan attr () yöntemine bile iletebilirsiniz.

İkinci Yol

 window.location.href="http://stackoverflow.com";

Bunun gibi kod da ekleyebilirsiniz (ikisi de dahili olarak aynıdır):

window.location="http://stackoverflow.com";

Window.location ve window.location.href arasındaki farkı merak ediyorsanız, ikincisinin açıkça değişmiş haliyle href özelliğini ayarladığını görebilirsiniz; window.location, varsayılan olarak .href özelliğini ayarlayan bir nesne döndürür.

Üçüncü Yol

Bir sayfayı JavaScript'i kullanarak window.location nesnesinin replace() yöntemi olarak yönlendirmenin başka bir yolu var. replace() yöntemine yeni bir URL iletebilirsiniz ve bu bir HTTP yönlendirmesini simüle edecektir. Bu arada, window.location.replace() yönteminin kaynak sayfayı oturum geçmişine koymadığını, bu da geri düğmesinin davranışını etkileyebileceğini unutmayın. Bazen istediğin şey bu yüzden dikkatli kullan.

// Doesn't put originating page in history
window.location.replace("http://stackoverflow.com");

Dördüncü Yol

like attr () method (jQuery 1.6 uygulamasından sonra)

var url = "http://stackoverflow.com";
$(location).prop('href', url);
32

jQuery içinde $(location).attr('href', url) işlevini kullanın:

$(document).ready(function(){
    var url = "https://www.youtube.com/watch?v=JwMKRevYa_M";
    $(location).attr('href', url); // Using this
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

raw JavaScript içinde, bunu başarmanın birkaç yolu vardır:

window.location.href="https://www.youtube.com/watch?v=JwMKRevYa_M";

- href özelliğini açıkça ayarlar.

window.location = "http://www.GameOfThrones.com";

- dolaylı olarak yapar çünkü window.location, varsayılan olarak .href özelliğini ayarlayan bir nesne döndürür.

window.location.replace("http://www.stackoverflow.com");

- Mevcut pencerenin yerini yenisi ile değiştirir.

self.location = "http://www.somewebsite.com";

- Mevcut pencerenin yerini belirler.

İşte belli bir süre sonra (3 saniye) JavaScript yönlendirmesi örneği:

<script>
    setTimeout(function() {
        window.location.href = "https://www.youtube.com/";
    }, 3000);
</script>
29
Inconnu

JavaScript kullanarak:

Yöntem 1:

window.location.href="http://google.com";

Yöntem 2:

window.location.replace("http://google.com");

JQuery kullanarak:

Yöntem 1: $ (konum)

$(location).attr('href', 'http://google.com');

Yöntem 2: yeniden kullanılabilir işlevi

jQuery.fn.redirectTo = function(url){
    window.location.href = url;
}

jQuery(window).redirectTo("http://google.com");
28
Kalpesh Panchal

JavaScript ve jQuery'de sayfayı yeniden yönlendirmek için bu kodu kullanırız:

window.location.href="http://google.com";
window.location.replace("page1.html");

Ancak, sayfayı yönlendirmek için jQuery'de bir işlev yapabilirsiniz:

jQuery.fn.redirect=function(url)
{
    window.location.href=url;
}

Ve bu işlevi çağırın:

jQuery(window).redirect("http://stackoverflow.com/")
27
Muhammad Waqas

JQuery işlevini kullanın:

$.extend({
  redirectPost: function(location, args) {
    var form = '';
    $.each(args, function(key, value) {
      form += '<input type="hidden" name="' + key + '" value="' + value + '">';
    });
    $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
  }
});

Kodunuzda bu şekilde kullanın:

$.redirectPost("addPhotos.php", {pimreference:  $("#pimreference").val(), tag: $("#tag").val()});
23
stratum

Basitçe JavaScript'te, aşağıdakileri kullanarak belirli bir sayfaya yönlendirebilirsiniz:

window.location.replace("http://www.test.com");

Veya

location.replace("http://www.test.com");

Veya

window.location.href = "http://www.test.com";

JQuery kullanarak:

$(window).attr("location","http://www.test.com");
18
vipul sorathiya
<script type="text/javascript">
var url = "https://yourdomain.com";

// IE8 and lower fix
if (navigator.userAgent.match(/MSIE\s(?!9.0)/))
{
    var referLink = document.createElement("a");
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
}

// All other browsers
else { window.location.replace(url); }
</script>
17
Jaydeep Jadav

Javascript çok geniştir. Başka bir sayfaya atlamak istiyorsanız üç seçeneğiniz vardır.

 window.location.href='otherpage.com';
 window.location.assign('otherpage.com');
 //and...

 window.location.replace('otherpage.com');

Başka bir sayfaya geçmek istediğinizde, bu sizin isteğinizse bunlardan herhangi birini kullanabilirsiniz. Ancak, üç seçenek de farklı durumlarla sınırlıdır. İsteğinize göre akıllıca seçti.

eğer kavram hakkında daha fazla bilgiye sahipseniz. Daha ileri gidebilirsiniz.

window.location.href; returns the href (URL) of the current page
window.location.hostname; returns the domain name of the web Host
window.location.pathname; returns the path and filename of the current page
window.location.protocol; returns the web protocol used (http: or https:)
window.location.assign; loads a new document
16
Must Keem J

İşte 10 saniyelik zaman aşımına sahip başka bir sayfaya yönlendirilecek kod.

<script>
    function Redirect()
    {
        window.location="http://www.adarshkr.com";
    }

    document.write("You will be redirected to a new page in 10 seconds.");
    setTimeout('Redirect()', 10000);
</script>

Location.assign kullanarak bir düğmeyi tıklatarak da bunu yapabilirsiniz:

<input type="button" value="Load new document" onclick="newPage()">
<script>
    function newPage() {
        window.location.assign("http://www.adarshkr.com")
    }
</script>
15

Aşağıdaki kodu kullanarak getRequestToForwardPage istek eşlemesi ( URL ) olduğu gibi kullanabilirsiniz. URL’nizi de kullanabilirsiniz.

function savePopUp(){
    $.blockUI();
    $.ajax({
        url:"saveGuestHouse?roomType="+$("#roomType").val(),
        data: $("#popForm").serialize(),
        dataType: "json",
        error: (function() {
            alert("Server Error");
            $.unblockUI();
    }),
    success: function(map) {
        $("#layer1").hide();
        $.unblockUI();
        window.location = "getRequestToForwardPage";
    }
});

Bu, uygulamanın aynı bağlamı içindir.

Yalnızca jquery'ye özel kod kullanmak istiyorsanız, aşağıdaki kod yardımcı olabilir:

 $(location).attr('href',"http://www.google.com");
 $jq(window).attr("location","http://www.google.com");
 $(location).prop('href',"http://www.google.com"); 
15
Vinay Sharma
<script type="text/javascript">
    if(window.location.href === "http://stackoverflow.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>
13
sneha

Sayfayı aşağıdaki yöntemleri kullanarak yönlendirebilirsiniz:

  1. Başlıktaki bir meta etiketi kullanarak - <meta http-equiv="refresh" content="0;url=http://your-page-url.com" />. Sayfayı yönlendirmek için kaç saniye sonra content="0;... kullanıldığını unutmayın.

  2. JavaScript kullanarak: window.location.href = "http://your-page-url.com";

  3. JQuery kullanarak: $(location).attr('href', 'http://yourPage.com/');

13
SantoshK

Kullanabilirsiniz:

window.location.replace("http://www.example.com/");

replace() yöntemi kaynak sayfayı oturum geçmişine kaydetmez, bu nedenle kullanıcı geri düğmesini kullanarak geri dönemez ve yeniden yönlendirilmez. NOT: Bu durumda tarayıcı geri düğmesi devre dışı bırakılır.

Ancak, bir efekt yapmak istiyorsanız, aramanız gereken bir bağlantıya tıklamakla aynı şey yapmalısınız:

window.location.href = "http://www.example.com/";

Bu durumda, tarayıcı geri düğmesi etkin olacaktır.

13
madhur

Kullanın:

function redirect(a) {
    location = a
}

Ve şununla arayın: redirect([url]);

Belirtildiği gibi href'dan sonra location öğesine gerek yoktur.

12
cascading-style

Button click olayı için Url.Action komut dosyasını aşağıdaki gibi yazabilirsiniz.

function onclick() {
        location.href = '@Url.Action("Index","Home")';
    }
12
wild coder

Tek Sayfa Başvuru , aynı başvuru rotasında

window.location.pathname = '/stack';

JavaScript:

location.href = "http://stack.com";
window.location = "http://stack.com";

jQuery:

$(location).attr('href', "http://www.stack.com");
$(window).attr('location', "http://www.stack.com");

Angular 4

import { Router } from '@angular/router';
export class NavtabComponent{
    constructor(private router: Router) {
    }
    this.router.navigate(['bookings/taxi']);
}
12
HD..

Sadece başka bir yol eklerim:

Sitenizin belirli bir sayfasını/bağlantılarını başka bir sayfaya yönlendirmek için bu kod satırını eklemeniz yeterlidir:

<script>
    if(window.location.href == 'old_url')
    {
        window.location.href="new_url";
    }

    // Another URL redirect
    if(window.location.href == 'old_url2')
    {
        window.location.href="new_url2";
    }
</script>

Gerçek hayattan bir örnek için,

<script>
    if(window.location.href == 'https://old-site.com')
    {
        window.location.href="https://new-site.com";
    }

    // Another URL redirect
    if(window.location.href == 'https://old-site.com/simple-post.html')
    {
        window.location.href="https://new-site.com/simple-post.html";
    }
</script>

Bu basit kodu kullanarak, tüm siteyi veya herhangi bir sayfayı yönlendirebilirsiniz.

11

Bunu uygulamak çok kolaydır. Kullanabilirsiniz:

window.location.href = "http://www.example.com/";

Bu önceki sayfanın geçmişini hatırlayacaktır. Böylece bir kişi tarayıcının geri düğmesine tıklayarak geri gidebilir.

Veya:

window.location.replace("http://www.example.com/");

Bu yöntem önceki sayfanın geçmişini hatırlamıyor. Bu durumda geri düğmesi devre dışı kalır.

11

Saf javascript kullanmayı tercih ederseniz, document.location.href = "https://example.com" veya window.location.href = "https://example.com" kullanmanın Firefox'ta uyumluluk sorunlarına neden olduğunu anladım. Bunun yerine kullanmayı deneyin:

location.href = "https://example.com";
location.replace("http://example.com");

Benim durumumda sorunu çözdü. İyi şanslar!

JavaScript işlevinin redirect () işlevini zaten kullanıyorum. İşe yarıyor.

<script type="text/javascript">
    $(function () {
        //It's similar to HTTP redirect
        window.location.replace("http://www.Technomark.in");

        //It's similar to clicking on a link
        window.location.href = "Http://www.Technomark.in";
    })
</script>
10
user1012506
  1. location.assign ():

    Bir yolu içine geçirerek bir rota yolu atamak için .. Ata size yol atandıktan sonra bile bir tarih verecektir.

    Kullanım Yöntemi: değer kendisine iletilmelidir.

    Örneğin: location.assign("http://google.com")

     Enter image description here

  2. location.href

    İçine bir yol vermeyi tanımlayabilir ... Kurulduktan sonra belirli bir yola yönlendirir ve geçmişi korur ...

    Kullanım Yöntemi: değer buna atanmalıdır.

    Örneğin: location.href = "http://google.com"

  3. location.replace ():

    Geçmişi tutmak istemiyorsanız, bir yolu değiştirmek için yardımcı olacaktır. Yolunu değiştirdiğinde sana bir tarih vermeyecek.

    Kullanım Yöntemi: değerin kendisine iletilmesi gerekir.

    Örneğin: location.replace("http://google.com")

     Enter image description here


assign() ve href benzerdir ve her ikisi de geçmişi tutabilir. assign bir değer ileterek çalışır ve href atayarak çalışır.

JQuery kullanmadan JavaScript'i kullanarak bunu başarabilirsiniz,

window.location = "http://google.com"
location.href = "http://google.com"

Aşağıdaki gibi jQuery kullanarak benzer bir şey elde edebilirsiniz. Yukarıdaki gibi aynısını yapacak,

$(window).attr('location', "http://www.google.com");
$(location).attr('href', "http://www.google.com");

İkisi arasındaki farkı kolayca anlayabilirsiniz ...

İşte Konum nesnesi,

 Location API from chrome

10
Silent Spectator

Aynı uygulama içindeki bir rotaya yönlendirmek istiyorsanız

window.location.pathname = '/examplepath'

gitmek için yol olurdu.

9
RuNpiXelruN

location.replace() işlevini kullanmak sizi yönlendirir, ancak önceki sayfanın geçmişini kaydetmeden. Bu bir form gönderildiğinde kullanmak daha iyidir. Fakat geçmişinizi korumak istediğinizde location.href=//path kullanmak zorundasınız.

Örnekler:

// form with steps
document.getElementById('#next').onclick = function() {
   window.location.href='/step2' // iteration of steps;
}

// go to next step
document.getElementById("#back').onclick = function() {
   window.history.back();
}

// finish 
document.getElementById("#finish').onclick = function() {
   window.location.href = '/success';
}

// on success page
window.onload = function() {
    setTimeout(function() {
       window.location.replace('/home'); // i can't go back to success page by pressing the back button
    },3000);
}
8
Andrei Todorut

Müşteri tarafında yönlendirme yapmak için tüm yol:

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and jQuery example to redirect a page or URL </title>
    </head>
    <body>
        <div id="redirect">
            <h2>Redirecting to another page</h2>
        </div>

        <script src="scripts/jquery-1.6.2.min.js"></script>
        <script>
            // JavaScript code to redirect a URL
            window.location.replace("http://stackoverflow.com");
            // window.location.replace('http://code.shouttoday.com');

            // Another way to redirect page using JavaScript

            // window.location.assign('http://code.shouttoday.com');
            // window.location.href = 'http://code.shouttoday.com';
            // document.location.href = '/relativePath';

            //jQuery code to redirect a page or URL
            $(document).ready(function(){
                //var url = "http://code.shouttoday.com";
                //$(location).attr('href',url);
                // $(window).attr('location',url)
                //$(location).prop('href', url)
            });
        </script>
    </body>
</html>
8
Zigri2612

jQuery/JavaScript kullanarak Kullanıcıyı Yönlendirme

JQuery veya JavaScript'te konum nesnesini kullanarak kullanıcıyı başka bir web sayfasına yönlendirebiliriz.

jQuery'de

Kullanıcıyı bir sayfadan diğerine yönlendirecek kod:

var url = 'http://www.example.com';
$(location).attr('href', url);

JavaScript'te

Kullanıcıyı bir sayfadan diğerine yönlendirecek kod:

var url = 'http://www.example.com';
window.location.href = url;

Veya

var url = 'http://www.example.com';
window.location = url;
6
devst3r

Bu şekilde kullanıyorum.

   window.location.replace('yourPage.aspx');   
   // If you're on root and redirection page is also on the root

   window.location.replace(window.location.Host + '/subDirectory/yourPage.aspx');

   // If you're in sub directory and redirection page is also in some other sub directory.
5
dnxit

İş tecrübeme göre, JavaScript yönlendirmek için çok daha iyidir.

Konumu nasıl değiştirmek istediğinize bağlı. Web sitenizi kullanıcıların geçmişine kaydetmek istiyorsanız, window.location.href='ur website'; kullanın. Aksi takdirde, tarihçeye giriş yapmadan yapmak için, window.location.replace("your website"); işlevini kullanın.

4
Omkaar.K