Kako preusmjeriti na drugu web stranicu?

Kako preusmjeriti korisnika s jedne stranice na drugu koristeći jQuery ili čisto javascript?

7735
02 февр. postavio venkatachalam 02 velj 2009-02-02 15:54 '09 u 15:54 2009-02-02 15:54
@ 80 odgovora
  • 1
  • 2
  • 3

Jedan ne preusmjerava samo pomoću jQuery

jQuery nije potreban, a window.location.replace(...) najbolje simulirano HTTP preusmjeravanje.

window.location.replace(...) bolji od korištenja window.location.href , jer replace() ne sprema izvornu stranicu u povijesti sesije, to jest, korisnik nije zaglavljen u beskrajnom fijasku stražnjeg gumba.

Ako želite oponašati nekoga klikom na vezu, koristite location.href

Ako želite simulirati HTTP preusmjeravanje, koristite location.replace

Na primjer:

 // 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"; 
13.553
03 февр. odgovor je dao Ryan McGeary 3. veljače. 2009-02-03 07:24 '09 u 7:24 am 2009-02-03 07:24

UPOZORENJE: Taj je odgovor jednostavno ponuđen kao moguće rješenje; ovo očito nije najbolje rješenje, budući da je za to potreban jQuery. Umjesto toga, preferiraju čisto rješenje za JavaScript.

border=0
1540
28 окт. odgovor Boris Guéry 28. listopada 2009-10-28 19:35 '09 u 19:35 2009-10-28 19:35

Standardna metoda preusmjeravanja stranice "javascript vanilla":

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


Ako ste ovdje jer izgubite HTTP_REFERER prilikom preusmjeravanja, nastavite čitati:


Sljedeći odjeljak namijenjen je onima koji koriste HTTP_REFERER kao jednu od mnogih sigurnih mjera (iako to nije velika zaštitna mjera). Ako koristite Internet Explorer 8 ili nižu, te varijable se gube pri korištenju bilo kojeg oblika preusmjeravanja JavaScript stranice (location.href, itd.).

U nastavku ćemo implementirati alternativu za IE8 i niže, tako da ne izgubimo HTTP_REFERER. Inače, gotovo uvijek možete koristiti samo window.location.href .

Testiranje preko HTTP_REFERER (umetanje URL-a, sesija, itd.) Može biti korisno u određivanju je li zahtjev legitiman. ( Napomena: postoje i načini zaobići / prevariti ove preporuke, kao što je navedeno u opisu veza s pogreškom)


Jednostavno rješenje za unakrsno ispitivanje (vraćanje na window.location.href za Internet Explorer 9+ i sve ostale preglednike)

Upotreba: 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 odgovor je dao Mark Pieszak - DevHelp.Online 27. srpnja '12. u 17:41 2012-07-27 17:41

Postoji mnogo načina da to učinite.

 // 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 odgovorio je 28. siječnja 2014-01-28 07:28 '14 u 7:28 2014-01-28 07:28

Radi za svaki preglednik:

 window.location.href = 'your_url'; 
292
23 окт. odgovor koji je dao Fredu 23. listopada. 2010-10-23 02:45 '10 u 2:45 am 2010-10-23 02:45

Pomoglo bi vam kad biste bili malo vizualniji o tome što pokušavate učiniti. Ako pokušavate generirati stranične podatke, postoje neke opcije u tome kako to učiniti. Možete stvoriti zasebne veze za svaku stranicu s kojom želite izravno povezati.

 <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> ... 

Primijetite da je trenutna stranica u primjeru različito obrađena u kodu i CSS-u.

Ako želite da se podaci stranice mijenjaju pomoću AJAX-a, ovdje će biti uključena jQuery. Što biste učinili, dodajte rukovatelja klikova za svaku od sidrenih oznaka koje odgovaraju drugoj stranici. Ovaj rukovatelj će pozvati neki jQuery kod koji je poslan i prikazuje sljedeću stranicu putem AJAX-a i ažurira tablicu novim podacima. U donjem primjeru pretpostavlja se da imate web-uslugu koja vraća nove podatke o stranicama.

 $(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 февр. Odgovor daje tvanfosson 02. veljače. 2009-02-02 16:18 '09 u 16:18 2009-02-02 16:18

Također mislim da je location.replace(URL) najbolji način, ali ako želite obavijestiti tražilice o preusmjeravanju (oni ne raščlanjuju JavaScript kôd za pregled preusmjeravanja), morate dodati rel="canonical" meta oznaku na svoju web lokaciju.

Dodavanje noscript sekcije s HTML oznakama meta ažuriranja također je dobro rješenje. Predlažem da koristite ovaj alat za preusmjeravanje javascripta za stvaranje preusmjeravanja. Također ima podršku za Internet Explorer za slanje HTTP preporuke.

Primjer kôda bez odgode izgleda ovako:

 <!-- 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 апр. odgovor je dao Patartics Milán 25. travnja 2013-04-25 13:12 '13 u 13:12 2013-04-25 13:12

Ali ako netko želi preusmjeriti na početnu stranicu, može koristiti sljedeći isječak.

 window.location = window.location.host 

Bilo bi korisno kada biste imali tri različita okruženja: razvoj, proizvodnju i proizvodnju.

Ovaj prozor ili objekt window.location možete pregledati tako da jednostavno stavite te riječi u konzolu Chrome ili Firebug .

206
30 окт. Odgovor je dao Nadeem Yasin 30. listopada. 2012-10-30 15:15 '12 u 15:15 2012-10-30 15:15

JavaScript pruža mnoge metode za izdvajanje i izmjenu trenutnog URL-a prikazanog u adresnoj traci preglednika. Sve ove metode koriste objekt Location, koji je svojstvo objekta Window. Novi objekt Location možete stvoriti s trenutnim URL-om kako slijedi.

 var currentLocation = window.location; 

Osnovna struktura URL-a

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

2019

195
23 дек. Nikhil Agrawal odgovorio je 23. prosinca 2013-12-23 16:35 '13 u 16:35 2013-12-23 16:35

Treba samo konfigurirati pomoću window.location .

primjer:

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

Evo prethodnog članka na ovu temu:

Kako preusmjeriti na drugu web stranicu?

182
16 февр. Odgovor je dan Newse 16 Feb. 2014-02-16 17:42 '14 u 17:42 2014-02-16 17:42

U stvari, jQuery je samo JavaScript infrastruktura , a za postizanje određenih stvari, kao što je preusmjeravanje u ovom slučaju, možete jednostavno koristiti čist JavaScript, tako da u ovom slučaju imate 3 mogućnosti za korištenje JavaScripta:

1) Utvrđivanje lokacije pomoću zamjene, koja zamjenjuje trenutačnu povijest stranica, znači da se ne možete koristiti gumbom Natrag za povratak na izvornu stranicu.

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

2) Pomoću odredišnog mjesta spremit će vam povijest, a pomoću gumba "Natrag" možete se vratiti na izvornu stranicu:

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

3) Preporučujem da koristite jednu od ovih prethodnih metoda, ali to bi mogla biti treća opcija pomoću čistog javascripta:

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

Također možete napisati funkciju u jQuery za obradu, ali to se ne preporučuje jer je to samo jedna linija JavaScript funkcije, možete koristiti sve gore navedene funkcije bez prozora ako ste već u području prozora, primjerice window.location.replace("http://stackoverflow.com"); može biti location.replace("http://stackoverflow.com");

Također ih prikazujem na sljedećoj slici:

2019

26 февр. Odgovoriti Alireza 26. velj. 2017-02-26 16:36 '17 u 16:36 2017-02-26 16:36

Prije nego počnete, jQuery je JavaScript knjižnica koja se koristi za manipuliranje DOM-om. Stoga ne smijete koristiti jQuery za preusmjeravanje stranice.

Citat iz jquery.com:

Iako jQuery može raditi bez ozbiljnih problema u starijim verzijama preglednika, mi u njima ne testiramo aktivno jQuery i obično ne popravljamo pogreške koje se mogu pojaviti u njima.

Pronađen je ovdje: https://jquery.com/browser-support/

Stoga, jQuery nije sve-i-sve-rješenje za kompatibilnost unatrag.

Sljedeće rješenje, koje koristi sirovi JavaScript, radi u svim preglednicima i standardno je dugo vremena, tako da ne trebate knjižnice za podržavanje unakrsnog preglednika.

Ova će stranica biti preusmjerena na Google nakon 3000 milisekundi.

 <!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> 

Moguće su sljedeće opcije:

 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" 

Prilikom zamjene, gumb Natrag neće se vratiti na stranicu preusmjeravanja, kao da nikada nije bila u povijesti. Ako želite da se korisnik vrati na stranicu preusmjeravanja, koristite window.location.href ili window.location.assign . Ako koristite opciju koja dopušta korisniku da se vrati na stranicu za preusmjeravanje, zapamtite da kada uđete na stranicu preusmjeravanja, ona vas ponovno preusmjerava. Stoga razmislite o tome pri odabiru opcije za preusmjeravanje. U uvjetima kada je stranica preusmjerena samo kada je akcija izvršena od strane korisnika, prisutnost stranice u povijesti gumba "Natrag" bit će u redu. Ali ako se stranica automatski preusmjerava, morate koristiti zamjenu tako da korisnik može koristiti gumb za povratak bez primitka prisilnog vraćanja na stranicu poslanu preusmjeravanjem.

Također možete koristiti metapodatke za pokretanje preusmjeravanja stranice, kao što je prikazano u nastavku.

META ažuriranje

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

META lokacija

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

BASE otmica

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

Na ovoj stranici možete pronaći mnoge druge načine za preusmjeravanje svog klijenta koji ne sumnja na stranicu koju oni možda ne žele, ali nijedan od njih ne ovisi o jQuery:

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

Također bih želio naglasiti da ljudi ne vole biti nasumično preusmjereni. Preusmjeravajte ljude samo kad je to apsolutno potrebno. Ako počnete preusmjeravati ljude slučajnim redoslijedom, oni više nikada neće ući na vašu web-lokaciju.

Sljedeći dio je hipotetski:

Poruku možete primiti i kao zlonamjernu web-lokaciju. Ako se to dogodi, kada korisnici kliknu na vezu na vašu web-lokaciju, preglednik korisnika može ih upozoriti da je vaša web-lokacija zlonamjerna. Može se dogoditi i da se tražilice počnu smanjivati ​​ako ljudi prijavljuju loša iskustva na vašoj web-lokaciji.

Pogledajte Googleove smjernice za webmastere za preusmjeravanje: https://support.google.com/webmasters/answer/2721217?hl=hr>

Ovo je zabavna mala stranica koja vas izbacuje iz stranice.

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

Ako kombinirate dvije primjerne stranice, imat ćete novorođenu petlju koja osigurava da vaš korisnik više nikada neće htjeti ponovno koristiti vašu web-lokaciju.

28 авг. Odgovor dao Patrick W. McMahon 28. kolovoza. 2014-08-28 00:50 '14 u 0:50 2014-08-28 00:50
 var url = 'asdf.html'; window.location.href = url; 
151
13 окт. odgovor korisnika daje korisnik188973 13. listopada 2009-10-13 12:36 '09 u 12:36 2009-10-13 12:36

To možete učiniti bez jQuery kao:

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

Ako želite samo jQuery, možete to učiniti kao:

 $jq(window).attr("location","http://yourdomain.com"); 
135
23 мая '12 в 16:03 2012-05-23 16:03 odgovor je dan ScoRpion 23. svibnja '12 u 4:03 pm 2012-05-23 16:03

Ovo funkcionira s jQuery:

 $(window).attr("location", "http://google.fr"); 
133
05 сент. Odgovor se daje xloadx 05 Sep. 2011-09-05 20:25 '11 u 20:25 2011-09-05 20:25

# Prosljeđivanje HTML stranice pomoću jQuery / JavaScript

Isprobajte ovaj uzorak koda:

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

Ako želite odrediti puni URL kao window.location = "www.google.co.in"; ,

82
06 февр. odgovor je dao Sakthi Karthik 6. veljače. 2014-02-06 13:28 '14 u 13:28 2014-02-06 13:28

Dakle, pitanje je kako napraviti stranicu preusmjeriti, a ne kako preusmjeriti na web stranicu?

Da biste to učinili morate koristiti javascript. Evo malog koda koji će stvoriti dinamičku stranicu za preusmjeravanje.

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

Recite mi da ste upravo stavili ovaj isječak u datoteku redirect/index.html na vašu web-lokaciju, možete je koristiti na ovaj način.

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

Ako pratite ovaj link, automatski će vas preusmjeriti na stackoverflow.com .

Veza s dokumentacijom

I kako stvoriti jednostavnu stranicu za preusmjeravanje s javascriptom

Uredi:

Postoji i jedan komentar. Dodao sam window.location.replace u svoj kôd, jer mislim da se uklapa na stranicu za preusmjeravanje, ali morate znati da prilikom korištenja window.location.replace i preusmjeravanja kada kliknete gumb za povratak u pregledniku , neće se vratiti na stranicu preusmjeravanja i vratit će se na stranicu ispred sebe, pogledati ovu malu demo stvar.

primjer:

Proces: zadržite home => preusmjerite stranicu na google => google

Kada je u google: google => gumb natrag u pregledniku => spasiti dom

Dakle, ako to odgovara vašim potrebama, onda bi sve trebalo biti u redu. Ako želite uključiti stranicu preusmjeravanja u povijesti preglednika, zamijenite je.

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

s

 if( url ) window.location.href = url; 
74
31 авг. Odgovor dao iConnor 31. kolovoza 2013-08-31 02:46 '13 u 2:46 2013-08-31 02:46

Trebali biste staviti ovaj redak u svoj kôd:

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

Ako nemate jQuery, idite na JavaScript pomoću:

 window.location.replace("http://stackoverflow.com"); window.location.href("http://stackoverflow.com"); 
74
27 янв. Odgovoriti Ashish Ratan 27. sij 2014-01-27 13:11 '14 u 13:11 2014-01-27 13:11

U funkciji klika jednostavno dodajte:

 window.location.href = "The URL where you want to redirect"; $('#id').click(function(){ window.location.href = "http://www.google.com"; }); 
69
14 нояб. Odgovor dao Swaprks 14. studenog. 2012-11-14 05:17 '12 u 5:17 2012-11-14 05:17

***** ORIGINALNO PITANJE BIO - "KAKO PREGLEDATI KORIŠTENJE JQUERY", OZNAČITE PROVJERE ODGOVORA >> BESPLATNA VJEŽBA *****

Samo preusmjerite na stranicu pomoću javascripta:

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

Ili ako trebate kašnjenje:

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

jQuery omogućuje jednostavno odabir elemenata s web stranice. Možete pronaći sve što želite na stranici, a zatim pomoću jQuery dodati posebne efekte, odgovoriti na korisničke radnje ili prikazati i sakriti sadržaj unutar ili izvan odabranog elementa. Sve ove zadaće počinju sa znanjem kako odabrati element ili događaj .

  $('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); }); 

Zamislite da je netko napisao skriptu / plugin koji sadrži 10.000 redaka koda? Pa, s jQuery, možete se spojiti na ovaj kod sa samo jednim ili dva retka.

66
26 дек. odgovor je dobio SergeDirect 26 prosinca. 2014-12-26 22:08 '14 u 22:08 2014-12-26 22:08

Pokušajte sljedeće:

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

primjer isječka koda .

57
19 нояб. Odgovori tilak 19 nov. 2013-11-19 07:01 '13 u 7:01 am 2013-11-19 07:01

jQuery nije potreban. To možete učiniti:

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

To je tako jednostavno!

Najbolji način za pokretanje HTTP zahtjeva je document.loacation.href.replace('URL') .

53
11 июля '13 в 20:40 2013-07-11 20:40 odgovor je dao MayorMonty 11. srpnja '13. u 20:40 sati 2013-07-11 20:40

Najprije ispravno napišite. Želite se kretati unutar aplikacije za drugu vezu iz svoje aplikacije za drugu vezu. Evo koda:

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

A ako se želite kretati kroz stranice u vašoj aplikaciji, onda također imam kôd ako želite.

50
06 июня '13 в 15:37 2013-06-06 15:37 odgovor je dao Anup 06. lipnja '13 u 15:37 2013-06-06 15:37

Možete preusmjeriti na jQuery na sljedeći način:

 $(location).attr('href', 'http://yourPage.com/'); 
50
05 сент. odgovor dat Azam Alvi 05 Sep. 2014-09-05 19:36 '14 u 19:36 2014-09-05 19:36

ECMAScript 6 + jQuery, 85 bajtova

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

Molim te, nemoj me ubiti, ovo je šala. Ovo je šala. Ovo je šala.

To je "dalo odgovor na pitanje" u smislu da je tražio rješenje "koristeći jQuery", što u ovom slučaju podrazumijeva prisiljavanje na jednadžbu.

Ferrybig očigledno treba objašnjenje šale (još uvijek se šali, siguran sam da postoje ograničene mogućnosti u obliku pregleda), tako da bez daljnjih poteškoća:

Drugi odgovori nepotrebno koriste jQuery attr() za location ili window .

Ovaj odgovor također zloupotrebljava, ali više smiješan. Вместо того, чтобы использовать его для установки местоположения, это использует attr() для извлечения функции, которая устанавливает местоположение.

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