我想阻止用户导航到未通过 html 元素访问的 URL。示例:
实际导航:myweb.com/news
我想导航到 myweb.com/news?article_id=10
通过在浏览器导航栏中写入此内容以避免按下任何元素(如 <a>
)。
当用户写入 myweb.com/news?article_id=10
时在浏览器 url 中,在他按下 enter 的那一刻,浏览器不应允许他导航到该 url。
我试过:
//This wont work since jquery does not support it
$(window.location.href).on('change', function() {
//Here check if href contains '?'
alert("Not allowed");
});
//Neither works, doesnt do anything
$(window).on('change', function() {
alert("Not allowed");
});
引用资料: 这里有类似的问题 On - window.location.hash - Change? ,但我对该问题的“参数”版本感兴趣。
最佳答案
有一些已知的解决方案:
) 每次用户单击链接时,您都会将页面值保存到 cookie 中。 稍后,在服务器上 - 您检查该间隔(value-1 ... value+1)。
) 您还可以保存到隐藏字段并在服务器中检查该值。
假设用户在第 3 页。(服务器提供该页面 - 因此存在值为 3 的 cookie/隐藏值)
现在他试图转到第 10 页:
您 - 在服务器端 - 读取 cookie + 请求的页码。如果间隔大于 1 - 则您拒绝该请求。
关于JavaScript 浏览器导航栏事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30434153/