我需要使用一些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& ...(更多参数,但不是我想要的所有参数!)
非常感谢!
答案 0 :(得分:0)
经过一些尝试,我设法使其与@Vaibhav在Access parent URL from iframe发布的解决方案一起使用
import org.spongycastle.jce.provider.BouncyCastleProvider