为啥页面 URL 或 href 中不显示 URL 参数? - Javascript
Posted
技术标签:
【中文标题】为啥页面 URL 或 href 中不显示 URL 参数? - Javascript【英文标题】:Why don't URL parameters display in the page URL or href? - Javascript为什么页面 URL 或 href 中不显示 URL 参数? - Javascript 【发布时间】:2021-12-11 10:29:33 【问题描述】:更新: 我遇到的确切问题是,即使我自己输入 URL 参数也是 null。
我的目标是将代码参数添加到重定向 URL。让我解释。我想要一个用于开发模式的 PIN,当用户获得正确的 PIN 时,他们会重定向到带有参数的页面,让他们通过。正确的代码每分钟都会根据当前时间戳更改。如果他们尝试在没有正确参数的情况下访问 URL,或者猜错了 pin,他们会被重定向到另一个页面。现在,地址栏中没有显示 URL 参数,即使我自己输入也是如此。
我已经尝试关闭后台重定向、固定 pin 和正确参数,甚至打印密码。我只遇到了一个错误,有时是“密码”变量,您将在下面看到,它会在一分钟内变为 nil。
这是我现有的重定向 javascript 代码:
var today = new Date();
let day = today.getDate()
let mins = today.getMinutes()
let hour = today.getHours()
let url = new URL(window.location.href)
let user = url.searchParams.get("user")
let timestamp = day + hour + mins
let passkey = timestamp * 32
console.log(passkey)
if (user == passkey)
if (window.location.href == "https://stacker.owenrtcs1051.repl.co/" || window.location.href == "https://stacker.owenrtcs1051.repl.co/not-available/")
console.log(window.location.href)
window.location.replace("../home?user=" + passkey)
else
if (hour > 19 && hour < 20)
if (screen.width < 600)
window.location.replace("../not-available")
else
if (window.location.href == "https://stacker.owenrtcs1051.repl.co/" || window.location.href == "https://stacker.owenrtcs1051.repl.co/not-available/")
console.log(window.location.href)
window.location.replace("../home?user=" + passkey)
else
if (window.location.href != "https://stacker.owenrtcs1051.repl.co/not-available")
window.location.replace("../not-available")
这是我现有的主页 Javascript 代码:
var today = new Date();
let day = today.getDate()
let mins = today.getMinutes()
let hour = today.getHours()
let url = new URL(window.location.href)
let user = url.searchParams.get("user")
let timestamp = day + hour + mins
let passkey = timestamp * 32
function devkey()
today = new Date();
day = today.getDate()
mins = today.getMinutes()
hour = today.getHours()
url = new URL(window.location.href)
user = url.searchParams.get("user")
timestamp = day + hour + mins
passkey = timestamp * 32
console.log(passkey)
let pin = prompt("Please insert your dev key.", "")
if (pin == "32")
window.location.replace("../home?user=" + passkey)
单击文本按钮时,调用此函数。
请提供反馈。我很想改进。 任何帮助表示赞赏!
【问题讨论】:
【参考方案1】:我对您的代码进行了测试,它可以正常工作,我将 URL 更改为 https://www.google.com(表示成功)和 https://www.bing.com(表示错误),最后我进入了 bing。在您的网站代码中也可以正常工作。没看懂问题
编辑: 我在你的第一个函数(网站中的那个)中做了一些测试,用户总是 null,所以当第一个 if(user == passkey) 是调用,它直接到最后一个else。
var today = new Date();
let day = today.getDate();
let mins = today.getMinutes();
let hour = today.getHours();
let url = new URL(window.location.href);
let user = url.searchParams.get("user");
let timestamp = day + hour + mins;
let passkey = timestamp * 32;
console.log("passkey:" + passkey);
console.log("user:" + user );
if (user == passkey)
if (window.location.href == "https://stacker.owenrtcs1051.repl.co/home/" || window.location.href == "https://stacker.owenrtcs1051.repl.co/not-available/")
console.log("first if: " + window.location.href);
window.location.replace("../home?user=" + passkey);
else
if (hour > 19 && hour < 20)
if (screen.width < 600)
window.location.replace("../not-available");
else
if (window.location.href == "https://stacker.owenrtcs1051.repl.co/home/" || window.location.href == "https://stacker.owenrtcs1051.repl.co/not-available/")
console.log("second if: " + window.location.href);
window.location.replace("../home?user=" + passkey);
else
console.log("final else: " + window.location.href);
正如我在评论中所说,当您为用户创建与提示交互的功能时,它会起作用,因为它不再为空(只需要输入“32”即可)。
您可以执行类似 devkey 功能的操作,用户输入密码,然后您进行如下验证:
let pin = prompt("Please insert your dev key.", "")
if (pin== passkey)
if (window.location.href == "https://stacker.owenrtcs1051.repl.co/home/" || window.location.href == "https://stacker.owenrtcs1051.repl.co/not-available/")
console.log("first if: " + window.location.href);
window.location.replace("../home?user=" + passkey);
【讨论】:
由于某种原因,当您在其他网站(如 google)中使用参数时,它确实有效,但在本网站中,它会重定向到没有 URL 参数的页面。我会在其他浏览器中尝试这个,看看它是否可以工作。顺便说一句,您使用什么网站或 IDE 来运行此代码?我使用 replit.com。 我编辑了我的答案,希望对你有帮助!以上是关于为啥页面 URL 或 href 中不显示 URL 参数? - Javascript的主要内容,如果未能解决你的问题,请参考以下文章
你能让 html 文件在 url 中不显示“.html”吗? [复制]
html里的ul标签在dw里显示小图标 但在浏览器中不显示,为啥???