JS window.location.href не показывает то же значение, что и в адресной строке - PullRequest
0 голосов
/ 03 июля 2019

Мне нужно прочитать URL, используя некоторый код JS, чтобы извлечь некоторые параметры и выполнить некоторые задачи в зависимости от них. Однако у меня есть две проблемы:

- Веб-страница не моя, поэтому я не могу что-либо изменить на ней или проверить ее очень подробно. Я просто пишу сценарий, который клиент загружает со своей веб-страницы, и выполняет некоторые функции при загрузке. Я могу изменить этот скрипт, но не что-нибудь еще.

-В этой функции я сохраняю в переменной значение window.location.href , но при выполнении некоторых журналов, чтобы проверить, что читает, я вижу, что значение не соответствует фактический URL в адресной строке. Более того, если я проверю значение window.location.href в консоли браузера, то это значение будет соответствовать адресной строке!

Я проверяю это значение в начале и в конце скрипта, и оно ни в коем случае не совпадает. Я не знаю, в какой момент загрузки мой скрипт начинает выполнение, и я не знаю, что вызывает такое поведение.

РЕДАКТИРОВАТЬ: Вот код, я не буду показывать его все, так как большая часть работает нормально и не имеет отношения к моей проблеме.

Это то, что я отправил своему клиенту, чтобы разместить на его веб-странице:

var s1 = document.createElement('script');
s1.src = 'source_of_my_script;
document.head.appendChild(s1);
s1.onload = function () {
    s();
};

Это часть моего сценария:

function s(){
    var my_url_var = window.location.href;
    console.log("1st value", my_url_var);
    var param = extractParamFromUrl(my_url_var); //this functions get some value written in the url

    switch (param){
        case 'value_0':
            // do things
        case 'value_1':
            // do  other things
        defalut:
            // do default actions    
    }
    console.log("final value", window.location.href);
}

Я не могу показать вам точные URL из-за соображений конфиденциальности, но они похожи на следующие:

URL адресной строки (и что я получу, если я проверю window.location.href в консоли браузера): https://www.client_dummy_url.com/dummy/cobranded?origin=8000097& ... (больше параметров разделено символом &)

Что я получаю из window.location.href в скрипте: https://www.client_dummy_url.com/drfd01/main/control.do?action=start&internet=S&app=EP& ... (больше параметров, но не все, которые я хочу!)

Большое спасибо!

1 Ответ

0 голосов
/ 04 июля 2019

После нескольких попыток мне удалось заставить его работать с решением, опубликованным @Vaibhav на Доступ к родительскому URL из iframe

//var my_url_var = window.location.href;
var my_url_var = (window.location != window.parent.location)
            ? document.referrer
            : document.location.href;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...