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

Bir jQuery veya saf javascript kullanarak bir kullanıcıyı bir sayfadan diğerine nasıl yönlendirebilirim?

7735
02 февр. venkatachalam 02 Şub tarafından set 2009-02-02 15:54 '09, 15:54 2009-02-02 15:54
@ 80 cevap
  • 1
  • 2
  • 3

Biri sadece jQuery kullanarak yönlendirme değil

jQuery gerekli değildir ve window.location.replace(...) en iyi benzetilmiş HTTP yönlendirmesidir.

window.location.replace(...) window.location.href kullanmaktan daha iyidir, çünkü replace() orijinal sayfayı oturum geçmişine kaydetmez, yani kullanıcı geri düğmesinin sonsuz fiyaskounda sıkışıp kalmaz.

Bağlantıyı tıklatarak birini taklit etmek istiyorsanız, location.href kullanın.

HTTP yönlendirmesini simüle etmek istiyorsanız, location.replace komutunu kullanın.

Ö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"; 
13553
03 февр. Cevap Ryan McGeary 03 Feb tarafından verildi. 2009-02-03 07:24 '09, 07:24, 2009-02-03 07:24

UYARI: Bu cevap basit bir çözüm olarak sağlandı; Açıkçası bu en iyi çözüm değil çünkü bunun için jQuery gerekli. Bunun yerine, temiz bir javascript çözümü tercih edin.

border=0
1540
28 окт. Boris Guéry tarafından verilen cevap 28 Ekim 2009-10-28 19:35 '09, 19:35 2009-10-28 19:35

Standart "vanilya" javascript sayfa yönlendirme yöntemi:

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


Yönlendirirken HTTP_REFERER kaybettiğin için buradaysan, okumaya devam et:


Aşağıdaki bölüm, HTTP_REFERER birçok güvenli önlemden biri olarak kullananlar için tasarlanmıştır (bu harika bir koruyucu önlem olmasa da). Internet Explorer 8 veya daha düşük bir sürümünü kullanırsanız, JavaScript sayfasını (location.href, vb.) Herhangi bir şekilde yönlendirirken bu değişkenler kaybolur.

Aşağıda IE8 için bir alternatif uygulayacağız ve aşağıda HTTP_REFERER'i kaybetmeyelim. Aksi takdirde, neredeyse her zaman sadece window.location.href kullanabilirsiniz.

HTTP_REFERER üzerinden test (URL ekleme, oturum vb.) Bir isteğin meşru olup olmadığını belirlemede faydalı olabilir. ( Not: Hatalı bağlantıların açıklamasında belirtildiği gibi, bu yönlendirenleri atlamanın / aldatmanın da yolları vardır)


Çapraz tarayıcı testi için basit bir çözüm (Internet Explorer 9+ ve diğer tüm tarayıcılar için window.location.href dosyasına geri alma)

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; } } 
556
27 июля '12 в 17:41 2012-07-27 17:41 Cevap Mark Pieszak tarafından verilmiştir - DevHelp.Online 27 Temmuz 12, 17:41 2012-07-27 17:41

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') 
369
28 янв. Govind Singh yanıtladı 28 Oca 2014-01-28 07:28 '14, 07:28 2014-01-28 07:28

Her tarayıcı için çalışıyor:

 window.location.href = 'your_url'; 
292
23 окт. 23 Ekim'de Fred'e verilen cevap . 2010-10-23 02:45 '10, 02:45, 2010-10-23 02:45

Yapmaya çalıştığınız şey hakkında biraz daha görsel olmanız yardımcı olurdu. Sayfalı veri oluşturmaya çalışıyorsanız, nasıl yaptığınıza dair bazı seçenekler var. Doğrudan bağlamak 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ı işlendiğine dikkat edin.

Sayfa verilerinin AJAX kullanılarak değiştirilmesini istiyorsanız, jQuery burada yer alacaktır. Yapacağınız şey, diğer sayfaya karşılık gelen bağlantı etiketlerinin her biri için bir tıklama işleyicisi eklemektir. Bu işleyici, AJAX aracılığıyla bir sonraki sayfayı görüntüleyen ve görüntüleyen bazı jQuery kodlarını arayacak ve tabloyu yeni verilerle güncelleyecektir. 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 }); }); 
273
02 февр. Cevap, 02 Şubat'ta tvanfosson tarafından verildi. 2009-02-02 16:18 '09, 16:18 2009-02-02 16:18

Ayrıca, location.replace(URL) nin en iyi yol olduğunu düşünüyorum, ancak yönlendirmenizin arama motorlarını bilgilendirmek istiyorsanız (yönlendirmeyi görüntülemek için JavaScript kodunu ayrıştırmazlar), sitenize bir rel="canonical" meta etiketi eklemelisiniz.

HTML güncelleme meta etiketlerine sahip bir noscript bölümü eklemek de iyi bir çözümdür. Yönlendirmeleri oluşturmak için bu javascript yönlendirme aracını kullanmanızı öneririm. Ayrıca bir HTTP yönlendiren göndermek 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 --> 
232
25 апр. Cevap Patartics Milán tarafından 25 Nis tarihinde verildi 2013-04-25 13:12 '13 13:12 2013-04-25 13:12

Ancak, birisi ana sayfaya yönlendirmek istiyorsa, aşağıdaki pasajı kullanabilir.

 window.location = window.location.host 

Geliştirme, üretim ve üretim: Üç farklı ortamınız olsaydı, faydası olurdu.

Bu pencereleri veya window.location nesnesini, bu kelimeleri Chrome veya Firebug konsoluna yerleştirerek inceleyebilirsiniz.

206
30 окт. Cevap, 30 Ekim'de Nadeem Yasin tarafından verildi . 2012-10-30 15:15 '12, 15:15 2012-10-30 15:15

JavaScript, tarayıcınızın adres çubuğunda görüntülenen mevcut URL'yi çıkarmak ve değiştirmek için birçok yöntem sunar. Bu yöntemlerin tümü, Window nesnesinin bir özelliği olan Location nesnesini kullanır. Geçerli URL ile aşağıdaki gibi yeni bir Konum nesnesi oluşturabilirsiniz.

 var currentLocation = window.location; 

Temel URL yapısı

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

2019

195
23 дек. Nikhil Agrawal yanıtladı 23 Ara 2013-12-23 16:35 '13 16:35 2013-12-23 16:35

Sadece window.location kullanılarak yapılandırılmalıdır.

örnek:

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

İşte bu konuyla ilgili önceki makale:

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

182
16 февр. Cevap 16 Şubat Newse'de verilir. 2014-02-16 17:42 '14, 17:42 2014-02-16 17:42

Aslında, jQuery sadece bir JavaScript altyapısıdır ve bu durumda yönlendirme gibi bazı şeyleri gerçekleştirmek için yalnızca saf JavaScript kullanabilirsiniz, bu durumda vanilya JavaScript'i kullanmak için 3 seçeneğiniz vardır:

1) Bir takas kullanarak bir konum belirleme , bu, geçerli sayfa geçmişinin yerini alır, orijinal sayfaya geri dönmek için geri düğmesini kullanamayacağınız anlamına gelir.

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

2) Hedef konumunu kullanarak sizin için geçmişi kaydeder 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 saf javascript kullanan üçüncü seçenek olabilir:

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

Ayrıca, jQuery'de bir işlevi yazabilmek için bir işlev yazabilirsiniz, ancak bu sadece bir JavaScript işlevi satırı olduğundan, pencerenin kapsamı window.location.replace("http://stackoverflow.com"); , bir pencere olmadan yukarıda listelenen tüm işlevleri kullanabilirsiniz, örneğin, window.location.replace("http://stackoverflow.com"); location.replace("http://stackoverflow.com");

Hepsini de aşağıdaki resimde göstereceğim:

2019

26 февр. Cevap Alireza 26 Şub. 2017-02-26 16:36 '17, 16:36, 2017-02-26 16:36

Başlamadan önce, jQuery, DOM'yi değiştirmek için kullanılan bir JavaScript kütüphanesidir. Bu nedenle, sayfayı yönlendirmek için jQuery kullanmamalısınız.

Jquery.com'dan alıntı:

Her ne kadar jQuery, tarayıcının eski sürümlerinde ciddi problemler olmadan çalışabilse de, jQuery'yi aktif olarak test etmiyoruz ve genellikle içinde görünen hataları düzeltmiyoruz.

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

Bu nedenle, jQuery geriye dönük uyumluluk için hepsi bir arada bir çözüm değildir.

Ham JavaScript kullanan aşağıdaki çözüm, tüm tarayıcılarda çalışır ve uzun süre boyunca standarttır, bu nedenle çapraz tarayıcıyı desteklemek için kitaplıklara ihtiyacınız yoktur.

Bu sayfa 3000 milisaniyeden sonra Google’a 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> 

Aşağıdaki seçenekler mümkündür:

 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" 

Değiştirirken, Geri düğmesi, daha önce hiç yapılmamış gibi yeniden yönlendirme sayfasına geri dönmez. Kullanıcının yönlendirme sayfasına dönmesini istiyorsanız, window.location.href veya window.location.assign kullanın. Kullanıcının yönlendirme sayfasına dönmesini sağlayan seçeneği kullanırsanız, yönlendirme sayfasına girdiğinizde sizi tekrar yönlendirdiğini unutmayın. Bu nedenle, yeniden yönlendirme için bir seçenek seçerken bunu göz önünde bulundurun. Sayfanın yalnızca kullanıcı tarafından eylem gerçekleştirildiğinde yönlendirildiği durumlarda, Geri düğmelerinin geçmişinde sayfanın varlığı iyi olur. Ancak, sayfa otomatik olarak yeniden yönlendirilirse, bir değiştirme kullanmanız gerekir, böylece kullanıcı yönlendirme ile gönderilen sayfaya zorla geri dönüş almadan geri düğmesini kullanabilir.

Meta verilerini, aşağıda gösterildiği gibi sayfa yönlendirmesini başlatmak için de kullanabilirsiniz.

META güncellemesi

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

META yeri

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

BASE Korsanlığı

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

Bu sayfada, şüphesiz istemcinizi istemedikleri bir sayfaya yönlendirmek için başka yollar bulabilirsiniz, ancak hiçbiri jQuery'ye bağlı değildir:

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

İnsanların rastgele yönlendirilmekten hoşlanmadıklarını da belirtmek isterim. İnsanları yalnızca kesinlikle gerekli olduğunda yönlendirin. İnsanları rastgele sırayla yönlendirmeye başlarsanız, sitenize bir daha asla girmezler.

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

Ayrıca, kötü amaçlı bir site olarak bir mesaj alabilirsiniz. Bu durumda, insanlar sitenize giden bağlantıyı tıkladığında, kullanıcılar tarayıcısı onları sitenizin kötü niyetli olduğu konusunda uyarabilir. Ayrıca, insanlar sitenizde kötü deneyimler bildirirse, arama motorlarının indirgenmeye başlaması da olabilir.

Yeniden yönlendirme için Google’ın web yöneticisi kurallarına göz atın: https://support.google.com/webmasters/answer/2721217?hl=tr>

İş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 örnek sayfayı bir araya getirirseniz, kullanıcının sitenizi bir daha asla kullanmak istemeyeceğinden emin olmak için yenidoğan bir döngünüz olur.

28 авг. Cevap Patrick W. McMahon tarafından 28 Ağu tarihinde verildi. 2014-08-28 00:50 '14, 0:50 2014-08-28 00:50
 var url = 'asdf.html'; window.location.href = url; 
151
13 окт. cevap 13 Ekim tarihinde user188973 tarafından verilir 2009-10-13 12:36 '09 12:36 2009-10-13 12:36

Bunu, jQuery gibi olmadan yapabilirsiniz:

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

Ve sadece jQuery istiyorsanız, o zaman şöyle yapabilirsiniz:

 $jq(window).attr("location","http://yourdomain.com"); 
135
23 мая '12 в 16:03 2012-05-23 16:03 Cevap ScoRpion 23 Mayıs '12' de 04:03 de 2012-05-23 16:03

Bu, jQuery ile çalışır:

 $(window).attr("location", "http://google.fr"); 
133
05 сент. Cevap xloadx 05 Eylül olarak verilir. 2011-09-05 20:25 '11 20:25 2011-09-05 20:25

# JQuery / JavaScript kullanarak bir HTML sayfasını iletme

Bu örnek kodu deneyin:

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

URL'nin tamamını window.location = "www.google.co.in"; olarak belirtmek istiyorsanız window.location = "www.google.co.in"; .

82
06 февр. Cevap Sakthi Karthik 06 Feb. 2014-02-06 13:28 '14 13:28 2014-02-06 13:28

Öyleyse soru, web sayfasına nasıl yönlendirileceği değil, sayfanın nasıl yönlendirileceğidir?

Bunu yapmak için javascript kullanmanız gerekir. İşte dinamik bir yönlendirme sayfası yaratacak 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> 

Öyleyse bana bu pasajı web sitenizdeki redirect/index.html dosyasına koyduğunuzu söyleyin, bu şekilde kullanabilirsiniz.

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

Ve bu bağlantıyı takip ederseniz, sizi otomatik olarak stackoverflow.com adresine yönlendirecektir.

Dokümantasyon bağlantısı

Ve javascript ile basit bir yönlendirme sayfası nasıl oluşturabilirsiniz

Düzenleme:

Ayrıca bir yorum var. window.location.replace kodumu ekledim, çünkü yönlendirme sayfasına uyduğunu düşünüyorum, ancak window.location.replace kullanılırken bunu kullanmanız gerektiğini ve tarayıcınızdaki geri düğmesine tıkladığınızda yönlendirildiğinizi bilmeniz gerekiyor. , yönlendirme sayfasına geri dönmeyecek ve önündeki sayfaya geri dönecek, bu küçük demo şemasına bir göz atalım.

örnek:

İşlem: ana sayfa => sayfayı google => google’a yönlendir

Googledayken: google => tarayıcıdaki geri düğmesi => evi kaydet

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

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

ile

 if( url ) window.location.href = url; 
74
31 авг. Yanıtlayan : iConnor 31 Ağu 2013-08-31 02:46 '13, 02:46 2013-08-31 02:46

Bu satırı kodunuza koymalısınız:

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

Eğer jQuery'niz yoksa, aşağıdakileri kullanarak JavaScript'e gidin:

 window.location.replace("http://stackoverflow.com"); window.location.href("http://stackoverflow.com"); 
74
27 янв. Yanıtla Ashish Ratan 27 Oca 2014-01-27 13:11 '14, 13:11 2014-01-27 13:11

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"; }); 
69
14 нояб. 14 Kasım'da Swaprks tarafından verilen cevap . 2012-11-14 05:17 '12 5:17 2012-11-14:17

***** ORİJİNAL SORU OLDU - "JQUERY KULLANIMI NASIL DEĞERLENDİRİLDİ", BUNA CEVAP UYGULAMALARI JQUERY >> ÜCRETSİZ EGZERSİZ *****

Sadece javascript kullanarak sayfaya yönlendirin:

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

Veya gecikmeye ihtiyacınız varsa:

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

jQuery, bir web sayfasından öğeleri kolayca seçmenize olanak sağlar. Sayfada istediğiniz her şeyi bulabilir ve daha sonra özel efektler eklemek, kullanıcı işlemlerine yanıt vermek veya seçtiğiniz öğenin içinde veya dışında içerik görüntülemek ve gizlemek için jQuery öğesini kullanabilirsiniz. Bu görevlerin tümü, bir öğe veya etkinliğin 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 go redirect window.location.href = "/contact/"; },500); }); 

Birinin 10.000 satır kod içeren bir komut dosyası / eklenti yazdığını hayal edin? JQuery ile bu koda sadece bir veya iki satır bağlayabilirsiniz.

66
26 дек. Cevap SergeDirect 26 Aralık'ta verildi . 2014-12-26 22:08 '14, 22:08 2014-12-26 22:08

Aşağıdakileri deneyin:

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

örnek kod pasajı .

57
19 нояб. Cevapla tilak 19 nov. 2013-11-19 07:01 13, 07:01, 2013-11-19 07:01

jQuery gerekli değildir. Bunu yapabilirsin:

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

Bu kadar kolay!

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

53
11 июля '13 в 20:40 2013-07-11 20:40 Cevap 11 Mayıs’ta 13 : mayıs’ta Belediye Başkanı Maymont’a verildi. 2013-07-11 20:40

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

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

Uygulamanızdaki sayfalarda gezinmek istiyorsanız, isterseniz kodum da var.

50
06 июня '13 в 15:37 2013-06-06 15:37 Cevap Anup tarafından 06 Haziran 13'te 15: 37'de verildi 2013-06-06 15:37

JQuery'ye aşağıdaki gibi yönlendirebilirsiniz:

 $(location).attr('href', 'http://yourPage.com/'); 
50
05 сент. Cevap Azam Alvi 05 eylül. 2014-09-05 19:36 '14, 19:36 2014-09-05 19:36

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 soruya bir cevap verdi”, bu durumda denklemi zorlamak gerekiyor.

Ferrybig görünüşte şaka hakkında bir açıklama gerektiriyor (hala şaka yapıyorum, gözden geçirme şeklinde sınırlı olasılıklar olduğundan eminim), bu yüzden daha fazla uzatmadan:

Diğer cevaplar gereksiz yere location veya window nesneleri için jQuery attr() kullanır.

Bu cevap da kötüye, ama daha komik. Вместо того, чтобы использовать его для установки местоположения, это использует attr() для извлечения функции, которая устанавливает местоположение.

Эта функция называется jQueryCode , хотя ничего нет jQuery, и вызов функции somethingCode просто ужасен, особенно когда что-то не является даже языком.