Как получить URL страницы без декодирования в JavaScript?
Как я могу получить URL страницы от window.location.href
без декодирования в JavaScript?
Например, мы не можем получить именно этот URL: http://example.com/report#title=example_report&url=project_chart%2F%3Fproject_id%3D77
,
Когда мы используем window.location.href
в javascript мы получим этот URL:
http://example.com/report#title=example_report&url=project_chart/?project_id=77
,
Но я хочу получить точно такой же реальный URL.
Любое решение?
отредактированный
как сказал @Eugenio, $(document)[0].URL
работает нормально, но безопасно ли это?!
4 ответа
Просто чтобы дать четкий и краткий ответ, я подведу итоги всех комментариев.
Для вашей проблемы лучшее решение - использовать document[x].url
где x - это индекс части URL, которую вы хотите использовать.
Основное отличие вашей проблемы между window.location.href
а также document.url
является то, что последний дает вам URL в строковом формате, в то время как другой возвращает уже проанализированный URL.
Использование любого из них абсолютно нормально и безопасно и широко распространено во всех современных браузерах.
var url1 = document.URL;
var url2 = window.location.href;
document.getElementById("documentUrl").append (url1);
document.getElementById("windowLocationUrl").append (url2);
<div id="documentUrl">document.url: </div>
<div id="windowLocationUrl">window.location.href: </div>
В этом конкретном примере фрагмента нет никаких отличий, поскольку к URL-адресу нет параметров. В любом случае, надеюсь, это помогло. Ура!
Попробуй использовать encodeURI
,
Как например;
var url = window.location.href;
var originalUrl = encodeURI(url);
Эта функция (encodeURI
) кодирует специальные символы, кроме:, /?: @ & = + $ #
Ты можешь использовать encodeURIComponent()
кодировать эти символы.
Ты можешь использовать encodeURIComponent
, но вы должны получить часть строки, которую хотите кодировать.
encodeURIComponent(window.location.href.split('&url=')[1])
Или вы можете использовать RegExp, чтобы быть более точным.
Как сказал @Eugenio, я использую приведенный ниже код, и он отлично работает:
var url = $(document)[0].URL;