Paano mag-redirect sa isa pang web page?

Paano i-redirect ang isang user mula sa isang pahina papunta sa isa pa gamit ang jQuery o dalisay na javascript?

7735
02 февр. itakda ni venkatachalam 02 Peb 2009-02-02 15:54 '09 sa 15:54 2009-02-02 15:54
@ 80 sagot
  • 1
  • 2
  • 3

Hindi lamang nagre-redirect ang paggamit ng jQuery

Hindi kinakai>window.location.replace(...) pinakamahusay na kunwa ang pag-redirect ng HTTP.

window.location.replace(...) mas mahusay kaysa sa paggamit ng window.location.href , dahil ang replace() ay hindi nag-i-save ang orihinal na pahina sa kasaysayan ng session, iyon ay, ang gumagamit ay hindi natigil sa wa>

Kung nais mong gayahin ang isang tao sa pamamagitan ng pag-click sa link, gamitin ang location.href

Kung gusto mong gayahin ang pag-redirect ng HTTP, gamitin ang location.replace

Halimbawa:

 // 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 февр. ang sagot ay ibinigay ni Ryan McGeary Pebrero 03. 2009-02-03 07:24 '09 sa 7:24 am 2009-02-03 07:24

BABALA: Ang sagot na ito ay ibinigay lamang bi>

border=0
1540
28 окт. sagot na ibinigay ni Boris Guéry Oktubre 28 2009-10-28 19:35 '09 sa 19:35 2009-10-28 19:35

Standard na paraan ng pag-redirect ng pahina ng "vanilla" javascript:

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


Kung narito ka dahil nawalan ka ng HTTP_REFERER kapag nagre-redirect, patuloy na magbasa:


Ang sumusunod na seksyon ay inilaan para sa mga gumagamit ng HTTP_REFERER bi>Internet Explorer 8 o mas mababa, ang mga variable na ito ay mawawala kapag gumagamit ng anumang paraan ng pag-redirect sa pahina ng JavaScript (location.href, atbp.).

Sa ibaba ay ipapatupad namin ang isang alternatibo para sa IE8 at sa ibaba upang hindi kami mawalan ng HTTP_REFERER. Kung hindi man, halos palagi kang makagamit lamang ang window.location.href .

Ang pagsubok sa HTTP_REFERER (pagpapasok ng URL, sesyon, atbp.) Ay maaaring maging kapaki-pakinabang sa pagtukoy kung ang isang kahilingan ay lehitimo. ( Tandaan: mayroon ding mga paraan upang i-bypass / cheat ang mga referer na ito, tulad ng nakasaad sa paglalarawan ng mga link na may error)


Isang simpleng solusyon para sa cross-browser testing (rollback sa window.location.href para sa Internet Explorer 9+ at lahat ng iba pang mga browser)

Paggamit: 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 ang sagot ay ibinigay ng Mark Pieszak - DevHelp.Online Hulyo 27 '12 sa 17:41 2012-07-27 17:41

Maraming mga paraan upang gawin ito.

 // 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 янв. Sinagot ni Govind Singh ang Enero 28 2014-01-28 07:28 '14 sa 7:28 2014-01-28 07:28

Gumagana ito para sa bawat browser:

 window.location.href = 'your_url'; 
292
23 окт. sumagot na ibinigay kay Fred noong Oktubre 23. 2010-10-23 02:45 '10 sa 2:45 am 2010-10-23 02:45

Makakatulong ito kung mas kaunti kang nakikita tungkol sa iyong sinisikap na gawin. Kung sinusubukan mong bumuo ng data ng paged, mayroong i>

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

Pansinin na ang kasalukuyang pahina sa halimbawa ay naiiba sa mga code at sa CSS.

Kung nais mong baguhin ang data ng pahina gamit ang AJAX, ang jQuery ay magiging kasangkot dito. Ang gagawin mo ay magdagdag ng handler ng pag-click para sa bawat isa sa mga tag na anchor na tumutugma sa iba pang pahina. Ang handler na ito ay tatawagan ng i>

 $(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 февр. Ang sagot ay ibinigay ng tvanfosson 02 Peb. 2009-02-02 16:18 '09 sa 16:18 2009-02-02 16:18

Sa tingin ko naman na ang location.replace(URL) ay ang pinakamahusay na paraan, ngunit kung nais mong ipaalam ang mga search engine ng iyong pag-redirect (hindi nila mai-parse ang JavaScript code upang tingnan ang pag-redirect), dapat kang magdagdag ng rel="canonical" meta tag sa iyong site.

Ang pagdaragdag ng isang seksyon ng noscript sa HTML meta tag sa pag-update nito ay isang mahusay na solusyon din. Iminumungkahi kong gamitin mo ang tool na ito ng redirect javascript upang lumikha ng mga pag-redirect. Mayroon din itong suporta sa Internet Explorer para sa pagpapadala ng isang HTTP referrer.

Ang sample code na wa>

 <!-- 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 апр. ang sagot ay ibinigay ni Patartics Milán noong Abril 25 2013-04-25 13:12 '13 sa 13:12 2013-04-25 13:12

Ngunit kung nais ng isang tao na i-redirect sa home page, maaari niyang gamitin ang sumusunod na snippet.

 window.location = window.location.host 

Makakatulong kung may tatlong magkakaibang kapaligiran: pag-unlad, produksyon at produksyon.

Maaari mong suriin ang window na ito o ang window.location object sa pamamagitan lamang ng paglalagay ng mga salitang ito sa Chrome o Firebug console.

206
30 окт. Ang sagot ay ibinigay ni Nadeem Yasin noong Oktubre 30. 2012-10-30 15:15 '12 sa 15:15 2012-10-30 15:15

Nagbibigay ang JavaScript sa iyo ng maraming mga paraan upang kunin at baguhin ang kasalukuyang URL na ipinapakita sa address bar ng iyong browser. Ang lahat ng mga pamamaraan na ito ay gumagamit ng object ng Lokasyon, na kung saan ay isang ari-arian ng object na Window. Maaari kang lumikha ng isang bagong object ng Lokasyon gamit ang kasalukuyang URL bi>

 var currentLocation = window.location; 

Pangunahing URL na istraktura

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

2019

195
23 дек. Sumagot si Nikhil Agrawal 23 Dis 2013-12-23 16:35 '13 sa 16:35 2013-12-23 16:35

Dapat lamang i-configure gamit ang window.location .

Halimbawa:

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

Narito ang nakaraang artikulo sa paksang ito:

Paano mag-redirect sa isa pang web page?

182
16 февр. Ang sagot ay binibigyan ng Newse 16 Peb. 2014-02-16 17:42 '14 sa 17:42 2014-02-16 17:42

Sa katunayan, ang jQuery ay isang imprastraktura ng JavaScript lamang , at upang magawa ang i>muling pag-redirect sa kasong ito, maaari mo lamang gamitin ang purong JavaScript, kaya sa kasong ito mayroon kang 3 mga pagpipilian para sa paggamit ng vanilla JavaScript:

1) Ang pagtukoy sa isang lokasyon gamit ang isang kapalit, ito ay pumapalit sa kasalukuyang kasaysayan ng pahina, nangangahulugang hindi mo magagamit ang back button upang bumalik sa orihinal na pahina.

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

2) Gamit ang lokasyon ng patutunguhan , ito ay i-save ang kasaysayan para sa iyo, at gamit ang back button maaari kang bumalik sa orihinal na pahina:

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

3) inirerekumenda ko ang paggamit ng isa sa mga nakaraang pamamaraan, ngunit maaaring ito ang pangatlong opsyon gamit ang dalisay na javascript:

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

Maaari ka ring magsulat ng isang function sa jQuery upang iproseso ito, ngunit hindi ito inirerekomenda dahil isa lamang ito ng linya ng JavaScript function, maaari mo ring gamitin ang lahat ng mga function na nakalista sa itaas nang wa>window.location.replace("http://stackoverflow.com"); ay maaaring location.replace("http://stackoverflow.com");

Ipinakikita ko rin sa kanila ang lahat sa larawan sa ibaba:

2019

26 февр. Sumagot Alireza Pebrero 26. 2017-02-26 16:36 '17 sa 4:36 ng hapon 2017-02-26 16:36

Bago ka magsimula, ang jQuery ay isang JavaScript library na ginagamit para sa pagmamanipula ng DOM. Samakatuwid, hindi mo dapat gamitin ang jQuery upang i-redirect ang pahina.

Quote mula jquery.com:

Kahit na maaaring gumana ang jQuery nang wa>

Natagpuan dito: https://jquery.com/browser-support/

Kaya, jQuery ay hindi isang all-and-all-solution para sa backward compatibility.

Ang sumusunod na solusyon, na gumagamit ng raw JavaScript, ay gumagana sa lahat ng mga browser at karaniwan nang mahabang panahon, kaya hindi mo kai>

Ang pahinang ito ay maibabalik sa Google pagkatapos ng 3000 milliseconds.

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

Posible ang mga sumusunod na pagpipilian:

 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" 

Kapag pinapalitan, ang Bumalik na pindutan ay hindi babalik sa pahina ng pag-redirect, na parang hindi pa ito naganap sa kasaysayan. Kung nais mong magbalik ang user sa pahina ng redirect, gamitin ang window.location.href o window.location.assign . Kung gagamitin mo ang opsyon na nagpapahintulot sa gumagamit na makabalik sa pahina ng pag-redirect, tandaan na kapag ipinasok mo ang pahina ng pag-redirect, binabalik nito ang iyong pag-redirect. Samakatuwid, isaa>

Maaari mo ring gamitin ang metadata upang simulan ang pag-redirect ng pahina, tulad ng ipinapakita sa ibaba.

Update ng META

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

Lokasyon ng META

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

BASE Hijacking

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

Sa pahinang ito maaari mong mahanap ang maraming iba pang mga paraan upang i-redirect ang iyong mapagtiwala client sa isang pahina na maaaring hindi nila gusto, ngunit wala sa kanila ay depende sa jQuery:

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

Gusto ko ring ituro na ang mga tao ay hindi nais na maging random na na-redirect. Pag-redirect lamang ng mga tao kapag talagang kai>

Ang susunod na bahagi ay hypothetical:

Maaari ka ring makatanggap ng mensahe bi>

Tingnan ang mga alituntunin ng webmaster ng Google para sa pag-redirect: https://support.google.com/webmasters/answer/2721217?hl=fil>

Narito ang isang masayang maliit na pahina na nagtatapon sa labas ng pahina.

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

Kung pagsamahin mo ang dalawang sample na pahina nang sama-sama, magkakaroon ka ng isang newborn loop na nagsisiguro na ang iyong user ay hindi kailanman nais na muling gamitin ang iyong site.

28 авг. sumagot na ibinigay ni Patrick W. McMahon noong Agosto 28. 2014-08-28 00:50 '14 sa 0:50 2014-08-28 00:50
 var url = 'asdf.html'; window.location.href = url; 
151
13 окт. ang sagot ay ibinigay ng user188973 noong Oktubre 13 2009-10-13 12:36 '09 sa 12:36 2009-10-13 12:36

Maaari mong gawin ito nang wa>

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

At kung gusto mo >

 $jq(window).attr("location","http://yourdomain.com"); 
135
23 мая '12 в 16:03 2012-05-23 16:03 ang sagot ay ibinigay ScoRpion Mayo 23, '12 sa 04:03 2012-05-23 16:03

Gumagana ito sa jQuery:

 $(window).attr("location", "http://google.fr"); 
133
05 сент. Ang sagot ay ibinigay xloadx Septiyembre 05. 2011-09-05 20:25 '11 sa 20:25 2011-09-05 20:25

# Pagpasa ng isang pahina ng HTML gamit ang jQuery / JavaScript

Subukan ang halimbawang code na ito:

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

Kung nais mong tukuyin ang buong URL bi>window.location = "www.google.co.in"; .

82
06 февр. ang sagot ay ibinigay ni Sakthi Karthik 06 Peb. 2014-02-06 13:28 '14 sa 13:28 2014-02-06 13:28

Kaya ang tanong ay kung paano gawin ang pag-redirect ng pahina, hindi kung paano mag-redirect sa website?

Upang gawin ito kai>

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

Kaya sabihin sa akin na inilagay mo >redirect/index.html file sa iyong website, maaari mo itong gamitin tulad nito.

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

At kung susundin mo ang link na ito, awtomatiko kang i-redirect ka sa stackoverflow.com .

Link ng dokumentasyon

At paano ka lumikha ng isang simpleng pahina ng pag-redirect gamit ang javascript

I-edit ang:

Mayroon ding isang komento. Nagdagdag ako ng window.location.replace sa aking code, dahil sa tingin ko naaangkop ito sa pahina ng pag-redirect, ngunit kai>window.location.replace at na-redirect ka kapag na-click mo ang back button sa iyong browser , hindi siya babalik sa pahina ng pag-redirect, at babalik siya sa pahina sa harap niya, tingnan ang maliit na bagay na demo na ito.

Halimbawa:

Proseso: panatilihin home => i- redirect ang pahina sa google => google

Kapag sa google: google => back button sa browser => i- save ang bahay

Kaya, kung ito ay angkop sa iyong mga pangangai>

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

may

 if( url ) window.location.href = url; 
74
31 авг. Sumagot na ibinigay ng iConnor Agosto 31 2013-08-31 02:46 '13 sa 2:46 2013-08-31 02:46

Dapat mong ilagay ang linyang ito sa iyong code:

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

Kung wala kang jQuery, pumunta sa JavaScript gamit ang:

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

Sa iyong pag-click function, idagdag lamang ang:

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

***** ANG ORIHINAL NA TANONG AY - "PAANO MAGSISITA PAGGAMIT NG JQUERY", HINDI ANG SAGOT NA IMPLEMENTS JQUERY >> LIBRENG PAGSUBOK *****

Pag-redirect >

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

O kung kai>

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

Pinapayagan ka ng jQuery na madaling piliin ang mga elemento mula sa isang web page. Makikita mo ang lahat ng gusto mo sa pahina, at pagkatapos ay gamitin ang jQuery upang magdagdag ng mga espesyal na effect, tumugon sa mga aksyon ng gumagamit, o ipakita at itago ang nilalaman sa loob o sa labas ng iyong piniling elemento. Ang lahat ng mga gawaing ito ay nagsisimula sa pag-alam kung paano pumili ng elemento o kaganapan .

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

Isipin ang isang tao ay sumulat ng script / plugin na naglalaman ng 10,000 na linya ng code? Buweno, may jQuery, maaari kang kumonekta sa code na ito sa pamamagitan lamang ng isang linya o dalawa.

66
26 дек. ang sagot ay ibinigay SergeDirect 26 Disyembre. 2014-12-26 22:08 '14 sa 22:08 2014-12-26 22:08

Subukan ang mga sumusunod:

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

sample code snippet .

57
19 нояб. Sumagot tilak 19 nov. 2013-11-19 07:01 '13 sa 7:01 ng umaga 2013-11-19 07:01

Hindi kinakai>

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

Madali iyon!

Ang pinakamahusay na paraan upang simulan ang isang kahilingan sa HTTP ay document.loacation.href.replace('URL') .

53
11 июля '13 в 20:40 2013-07-11 20:40 ang sagot ay ibinigay ng MayorMonty Hulyo 11, '13 sa 8:40 pm 2013-07-11 20:40

Unang isulat ang tama. Gusto mong mag-navigate sa loob ng application para sa isa pang link mula sa iyong application para sa isa pang link. Narito ang code:

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

At kung nais mong mag-navigate sa pamamagitan ng mga pahina sa iyong application, mayroon din akong code kung gusto mo.

50
06 июня '13 в 15:37 2013-06-06 15:37 ang sagot ay ibinigay ni Anup noong Hunyo 06 '13 sa 15:37 2013-06-06 15:37

Maaari mong i-redirect sa jQuery tulad ng sumusunod:

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

ECMAScript 6 + jQuery, 85 bytes

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

Mangyaring huwag patayin ako, ito ay isang joke. Ito ay isang joke. Ito ay isang joke.

Ito "ay nagbigay ng isang sagot sa tanong" sa diwa na humiling siya ng isang solusyon "gamit ang jQuery", na sa kasong ito ay nangangai>

Tila nangangai>

Ang ibang mga sagot ay gumagamit ng jQuery attr() para sa mga bagay sa location o window hindi kinakai>

Sinasadya din ang sagot na ito, ngunit mas nakakatawa. Вместо того, чтобы использовать его для установки местоположения, это использует attr() для извлечения функции, которая устанавливает местоположение.

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