Kaip nukreipti į kitą tinklalapį?

Kaip nukreipti vartotoją iš vieno puslapio į kitą naudojant „jQuery“ ar gryną „javascript“?

7735
02 февр. nustatė venkatachalam 02 vasaris 2009-02-02 15:54 '09, 15:54, 2009-02-02 15:54
@ 80 atsakymų
  • 1
  • 2
  • 3

Vienas ne tik peradresuoja naudojant jQuery

jQuery nereikia, o window.location.replace(...) geriausias modeliuojamas HTTP peradresavimas.

window.location.replace(...) geresnis nei naudojant window.location.href , nes replace() neišsaugo pradinio puslapio sesijos istorijoje, ty vartotojas nėra įstrigęs be galo atgalinio mygtuko.

Jei norite imituoti ką nors, spustelėję nuorodą, naudokite location.href

Jei norite imituoti HTTP peradresavimą, naudokite location.replace

Pavyzdžiui:

 // 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 февр. atsakymą pateikė Ryan McGeary 03 vasaris. 2009-02-03 07:24 '09, 07:24 am. 2009-02-03 07:24

ĮSPĖJIMAS: šis atsakymas buvo pateiktas kaip galimas sprendimas; tai akivaizdžiai nėra geriausias sprendimas, nes jQuery yra būtinas. Vietoj to, pageidaujate švaraus javascript sprendimo.

border=0
1540 m
28 окт. atsakymą pateikė Borisas Guéry, spalio 28 d 2009-10-28 19:35 '09 19:35 2009-10-28 19:35

Standartinis „vanilės“ javascript puslapio peradresavimo metodas:

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


Jei esate čia, nes prarandate HTTP_REFERER, kai peradresuojate, skaitykite toliau:


Šis skyrius skirtas tiems, kurie naudoja HTTP_REFERER kaip vieną iš daugelio saugių priemonių (nors tai nėra puiki apsaugos priemonė). Jei naudojate „ Internet Explorer 8“ ar žemesnę versiją, šie kintamieji prarandami naudojant bet kokią „JavaScript“ puslapio nukreipimo formą (location.href ir tt).

Toliau ketiname įdiegti alternatyvą IE8 ir žemiau , kad neprarastume HTTP_REFERER. Priešingu atveju, jūs beveik visada galite naudoti window.location.href .

Testavimas per HTTP_REFERER (URL įterpimas, sesija ir tt) gali būti naudingas nustatant, ar prašymas yra teisėtas. ( Pastaba: taip pat yra būdų apeiti / apgauti šiuos referentus, kaip nurodyta nuorodų aprašyme su klaida)


Paprastas sprendimas naršyklių bandymams atlikti („Internet Explorer 9+“ ir visoms kitoms naršyklėms taikymas „window.location.href“)

Naudojimas: 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 atsakymą pateikė Mark Pieszak - DevHelp.Online liepos 27 d., 12 val.

Yra daug būdų tai padaryti.

 // 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 atsakė į 28 Jan 2014-01-28 07:28 '14, 7:28 2014-01-28 07:28

Jis veikia kiekvienoje naršyklėje:

 window.location.href = 'your_url'; 
292
23 окт. atsakymas Fredui spalio 23 d 2010-10-23 02:45 '10, 2:45 val. 2010-10-23 02:45

Tai padėtų, jei buvote šiek tiek vizualesnis apie tai, ką bandote daryti. Jei bandote generuoti lapinius duomenis, yra keletas būdų, kaip tai padaryti. Galite sukurti atskiras nuorodas kiekvienam puslapiui, su kuriuo norite tiesiogiai susieti.

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

Atkreipkite dėmesį, kad dabartiniame pavyzdyje esantis puslapis kode ir CSS tvarkomas skirtingai.

Jei norite, kad puslapio duomenys būtų keičiami naudojant AJAX, čia bus įtrauktas jQuery. Tai, ką darytumėte, yra pridėti paspaudimų tvarkyklę kiekvienam žymeniui, kuris atitinka kitą puslapį. Šis tvarkytojas paskambins kai kuriam jQuery kodui, kuris bus išsiųstas, ir parodys kitą puslapį per AJAX ir atnaujins lentelę su naujais duomenimis. Toliau pateiktame pavyzdyje daroma prielaida, kad turite interneto paslaugą, kuri grąžina naujus puslapio duomenis.

 $(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 февр. Atsakymą pateikė 02 02 vasario mėn. 2009-02-02 16:18 '09 at 16:18 2009-02-02 16:18

Taip pat manau, kad location.replace(URL) yra geriausias būdas, tačiau, jei norite pranešti paieškos sistemoms apie savo peradresavimą (jie nekalba „JavaScript“ kodo, kad peržiūrėtų peradresavimą), turite pridėti „ rel="canonical" žymę.

Be to, pridėjus „HTML“ naujinimo meta žymeklių skyrių, tai yra geras sprendimas. Siūlome naudoti šį „ JavaScript“ peradresavimo įrankį, kad sukurtumėte peradresavimus. Jis taip pat turi „Internet Explorer“ palaikymą HTTP nuorodų siuntimui.

Pavyzdinis kodas nedelsiant atrodo taip:

 <!-- 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 апр. atsakymą pateikė Patartics Milán , balandžio 25 d 2013-04-25 13:12 '13, 13:12, 2013-04-25 13:12

Bet jei kas nors nori nukreipti į pagrindinį puslapį, jis gali naudoti šį fragmentą.

 window.location = window.location.host 

Būtų naudinga, jei turėtumėte tris skirtingas aplinkybes: kūrimą, gamybą ir gamybą.

Šį >Firebug“ konsolę.

206
30 окт. Atsakymą pateikė Nadeem Yasin spalio 30 d. 2012-10-30 15:15 '12, 15:15, 2012-10-30 15:15

„JavaScript“ suteikia daugybę būdų išgauti ir keisti dabartinį URL, rodomą naršyklės adreso juostoje. Visi šie metodai naudoja „Location“ objektą, kuris yra „Window“ objekto nuosavybė. Galite sukurti naują vietovės objektą su dabartiniu URL taip:

 var currentLocation = window.location; 

Pagrindinė URL struktūra

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

2019

195
23 дек. Nikhil Agrawal atsakė į 23 d 2013-12-23 16:35 '13, 16:35, 2013-12-23 16:35

Turėtų būti sukonfigūruotas naudojant window.location .

Pavyzdys:

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

Čia yra ankstesnis šio temos straipsnis:

Kaip nukreipti į kitą tinklalapį?

182
16 февр. Atsakymas pateikiamas Newse 16 vasario mėn. 2014-02-16 17:42 '14 at 17:42 2014-02-16 17:42

Tiesą sakant, „ jQuery“ yra tik „ JavaScript“ infrastruktūra ir tam tikriems dalykams, pvz., Peradresavimui , galite tiesiog naudoti „JavaScript“, todėl šiuo atveju turite 3 „vanilės“ „JavaScript“ parinktis:

1) Vietos nustatymas naudojant apsikeitimo sandorį, tai pakeičia dabartinę puslapio istoriją, reiškia, kad negalite naudoti atgalinio mygtuko grįžti į pradinį puslapį.

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

2) Naudodamas paskirties vietą, jis išsaugos istoriją ir naudodamas atgalinį mygtuką galite grįžti į pradinį puslapį:

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

3) rekomenduoju naudoti vieną iš šių ankstesnių metodų, tačiau tai galėtų būti trečias variantas naudojant gryną „JavaScript“:

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

Taip pat galite rašyti funkciją jQuery, kad jį apdorotumėte, tačiau tai nerekomenduojama, nes tai tik viena „JavaScript“ funkcijos eilutė, taip pat galite naudoti visas pirmiau išvardytas funkcijas be >window.location.replace("http://stackoverflow.com"); gali būti location.replace("http://stackoverflow.com");

Aš taip pat parodau juos visus žemiau esančiame paveikslėlyje:

2019

26 февр. Atsakyti Alireza 26 vasaris 2017-02-26 16:36 '17, 16:36 pm 2017-02-26 16:36

Prieš pradėdami, jQuery yra „JavaScript“ biblioteka, naudojama manipuliuoti DOM. Todėl nereikėtų naudoti jQuery, kad nukreiptumėte puslapį.

Citata iš jquery.com:

Nors jQuery gali dirbti be rimtų problemų senesnėse naršyklės versijose, mes jQuery ne aktyviai bandome jais ir paprastai nenustatome jose atsirandančių klaidų.

Jis buvo rastas čia: https://jquery.com/browser-support/

Taigi, jQuery nėra visapusiškas sprendimas atgaliniam suderinamumui.

Toliau pateiktas sprendimas, kuriame naudojamas neapdorotas „JavaScript“, veikia visose naršyklėse ir yra standartinis ilgą laiką, todėl nereikia bibliotekų, kad palaikytų tarpvalstybinę naršyklę.

Šis puslapis bus nukreiptas į „ Google“ po 3000 milisekundžių.

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

Galimos šios parinktys:

 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" 

Pakeitus mygtuką „Atgal“ nebus grįžta į peradresavimo puslapį, tarsi jis nebūtų buvęs istorijoje. Jei norite, kad vartotojas grįžtų į peradresavimo puslapį, naudokite window.location.href arba window.location.assign . Jei naudojate parinktį, kuri leidžia vartotojui grįžti į nukreipimo puslapį, nepamirškite, kad įvedę peradresavimo puslapį, jis nukreipia jus atgal. Todėl apsvarstykite tai pasirinkdami parinktį peradresuoti. Tais atvejais, kai puslapis nukreipiamas tik tada, kai veiksmą atlieka vartotojas, tuomet „Back“ mygtukų istorijos buvimas bus tvarkingas. Tačiau, jei puslapis automatiškai nukreipiamas, turite naudoti pakeitimą, kad vartotojas galėtų naudoti atgalinį mygtuką negavęs priverstinio grįžimo į nukreipiamu puslapiu.

Taip pat galite naudoti metaduomenis, kad pradėtumėte puslapio peradresavimą, kaip parodyta žemiau.

META atnaujinimas

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

META vieta

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

BASE užgrobimas

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

Šiame puslapyje galite rasti daug kitų būdų, kaip nukreipti nepageidaujamą klientą į puslapį, kurio jie nenori, tačiau nė vienas iš jų nepriklauso nuo „jQuery“:

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

Taip pat norėčiau pabrėžti, kad žmonės nemėgsta būti atsitiktinai nukreipti. Tik visiškai būtina nukreipti žmones. Jei pradėsite nukreipti žmones atsitiktine tvarka, jie niekada neprisijungs prie jūsų svetainės.

Kita dalis yra hipotetinė:

Taip pat galite gauti pranešimą kaip kenkėjišką svetainę. Jei taip atsitinka, tada, kai žmonės spustelės nuorodą į jūsų svetainę, naudotojų naršyklė gali įspėti, kad jūsų svetainė yra kenkėjiška. Taip pat gali atsitikti, kad paieškos sistemos gali pradėti mažėti, jei žmonės praneša apie blogą patirtį jūsų svetainėje.

Peržiūrėkite „Google“ žiniatinklio valdytojo gaires dėl peradresavimo: https://support.google.com/webmasters/answer/2721217?hl=lt>

Štai įdomus mažas puslapis, kuris išmeta jus iš puslapio.

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

Jei kartu sujungiate du pavyzdžių puslapius, turėsite naujagimio kilpą, užtikrinančią, kad jūsų vartotojas niekada nenori naudoti jūsų svetainės.

28 авг. W. McMahon atsakymas, pateiktas rugpjūčio 28 d. 2014-08-28 00:50 '14 ne 0:50 2014-08-28 00:50
 var url = 'asdf.html'; window.location.href = url; 
151
13 окт. atsakymą pateikė vartotojo188973 spalio 13 d 2009-10-13 12:36 '09 12:36 2009-10-13 12:36

Tai galite padaryti be „jQuery“ kaip:

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

Ir jei norite tik jQuery, tai galite padaryti kaip:

 $jq(window).attr("location","http://yourdomain.com"); 
135
23 мая '12 в 16:03 2012-05-23 16:03 atsakymas pateikiamas „ ScoRpion“ gegužės 23 d., 12 val

Tai veikia su jQuery:

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

# HTML puslapio persiuntimas naudojant jQuery / JavaScript

Išbandykite šį mėginio kodą:

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

Jei norite nurodyti visą URL kaip window.location = "www.google.co.in"; .

82
06 февр. atsakymą pateikė Sakthi Karthik 06 vasaris. 2014-02-06 13:28 '14 at 13:28 2014-02-06 13:28

Taigi kyla klausimas, kaip padaryti puslapio peradresavimą, o ne kaip nukreipti į svetainę?

Norėdami tai padaryti, turite naudoti javascript. Štai mažas kodas, kuris sukurs dinaminį nukreipimo puslapį.

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

Taigi pasakykite man, kad tiesiog įdėjote šį fragmentą į savo svetainės redirect/index.html failą, galite jį naudoti taip.

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

Ir jei seksite šią nuorodą, ji automatiškai nukreips jus į stackoverflow.com .

Nuoroda į dokumentaciją

Ir kaip sukurti paprastą peradresavimo puslapį su „JavaScript“

Redaguoti:

Taip pat yra vienas komentaras. Aš pridėjau window.location.replace į mano kodą, nes manau, kad jis atitinka peradresavimo puslapį, bet jums reikia žinoti, kad naudojant window.location.replace ir nukreipiate, kai naršyklėje spustelėsite mygtuką „Back“ , ji negrįš į peradresavimo puslapį, ir ji grįš į puslapį priešais, pažvelgs į šį mažą demo dalyką.

Pavyzdys:

Procesas: palaikykite namus => nukreipkite puslapį į google => google

Kai naršyklėje „ google“: „ google => atgal“ => išsaugokite namą

Taigi, jei tai atitinka jūsų poreikius, viskas turėtų būti gerai. Jei norite į savo naršyklės istoriją įtraukti nukreipimo puslapį, pakeiskite jį.

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

su

 if( url ) window.location.href = url; 
74
31 авг. Atsakymas, kurį pateikė iConnor rugpjūčio 31 d 2013-08-31 02:46 '13, 2:46, 2013-08-31 02:46

Turėtumėte įdėti šią eilutę į savo kodą:

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

Jei neturite jQuery, eikite į „JavaScript“ naudodami:

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

Paspaudimo funkcijoje tiesiog pridėkite:

 window.location.href = "The URL where you want to redirect"; $('#id').click(function(){ window.location.href = "http://www.google.com"; }); 
69
14 нояб. „ Swaprks“ atsakymas lapkričio 14 d. 2012-11-14 05:17 '12 at 5:17 2012-11-14 05:17

***** ORIGINALIS KLAUSIMAS - „KAIP PATIKRINTI NAUDOTI JQUERY“, ATSIŽVELGIANT Į ATSAKYMŲ ĮGYVENDINIMĄ >> NEMOKAMAI VEIKLA *****

Tiesiog nukreipkite į puslapį naudodami javascript:

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

Arba jei reikia vėlavimo:

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

jQuery leidžia lengvai pasirinkti elementus iš tinklalapio. Puslapyje galite rasti viską, ką norite, ir tada naudokite jQuery, jei norite pridėti specialių efektų, atsakyti į naudotojo veiksmus arba rodyti ir paslėpti turinį pasirinkto elemento viduje ar už jos ribų. Visos šios užduotys prasideda žinant, kaip pasirinkti elementą ar įvykį .

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

Įsivaizduokite, kad kas nors parašė scenarijų / įskiepį, kuriame yra 10000 kodų eilutės? Na, su jQuery, galite prisijungti prie šio kodo tik viena ar dvi eilutės.

66
26 дек. atsakymas pateikiamas Serge direct 26 dec. 2014-12-26 22:08 '14, 22:08 2014-12-26 22:08

Pabandykite atlikti šiuos veiksmus:

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

pavyzdys kodo fragmentas .

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

jQuery nereikalaujama. Tai galite padaryti:

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

Tai taip paprasta!

Geriausias būdas inicijuoti HTTP užklausą yra document.loacation.href.replace('URL') .

53
11 июля '13 в 20:40 2013-07-11 20:40 atsakymą pateikė MayorMonty, liepos 11 d., 13 d., 8:40 val. 2013-07-11 20:40

Pirmiausia parašykite teisingai. Norite naršyti taikomojoje programoje kitai nuorodai iš kitos programos. Čia yra kodas:

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

Ir jei norite pereiti per savo programos puslapius, taip pat turiu kodą, jei norite.

50
06 июня '13 в 15:37 2013-06-06 15:37 atsakymą pateikė Anupas birželio 6 d. 13 d. 15:37 2013-06-06 15:37

Galite nukreipti į jQuery taip:

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

ECMAScript 6 + jQuery, 85 байт

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