JS window.location.href与地址栏中显示的值不同

时间:2019-07-03 14:34:40

标签: javascript url location-href

我需要使用一些JS代码读取URL,以便提取一些参数并根据它们执行一些任务。但是我有两个问题:

-该网页不是我的,因此我无法对其进行任何修改或对其进行详细检查。我只是编写一些客户端从其网页加载的脚本,并在加载时执行一些功能。我可以修改此脚本,但不能修改其他任何内容。

-在此函数中,我将 window.location.href 值保存在变量中,但是在进行一些日志以验证正在读取的内容时,我发现该值与地址栏中的实际网址。此外,如果我在浏览器控制台中检查 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 :(得分:0)

经过一些尝试,我设法使其与@Vaibhav在Access parent URL from iframe发布的解决方案一起使用

import org.spongycastle.jce.provider.BouncyCastleProvider