Omdirigerer til en relativ URL i JavaScript


Mitt problem er at jeg vil omdirigere via JavaScript til en katalog over.

Koden min:

location.href = (location.href).substr(0, (location.href).lastIndexOf('folder'))

URL-en ser slik ut:

example.com/path/folder/index.php?file=abc&test=123&lol=cool

Omdirigeringen påvirker bare dette:

example.com/path/&test=123&lol=cool

Men vil ha dette:

example.com/path/

Hvordan kan jeg gjøre det?

Svar #1

Du kan gjøre en relativ omdirigering:

window.location.href = '../'; //one level up

eller

window.location.href = '/path'; //relative to domain

Svar #2

Hvis du bruker location.hostname vil du få domenet ditt.com-delen. Deretter vil location.pathname gi deg /path/folder. Jeg ville delt location.pathname etter/og satt sammen URL-en på nytt. Men med mindre du trenger spørrestrengen, kan du bare omdirigere til .. for å gå et nivå opp i katalogen.

Svar #3

https://developer.mozilla.org/en-US/docs/Web/API/Location/assign

  • window.location.assign("../");/ett nivå opp
  • window.location.assign("/path");/relativt til domenet

Svar #4

videresend til ../

Svar #5

Dette er et gammelt spørsmål, men bare for å gi mer informasjon, slik fungerer URL-er:

window.location.href = 'https://domain/path';   // absolute
window.location.href = '//domain/path';         // relative to current schema
window.location.href = 'path';                  // relative to current path
window.location.href = '/path';                 // relative to domain
window.location.href = '../';                   // one level up

Relaterte artikler