我有一个页面,如果它没有在颜色框中打开,我不希望任何人能够访问它。我想将它们重定向回“/dashboard/”。
澄清一下,如果页面是直接访问的(不是在 iframe/colorbox 中),则重定向,否则,加载页面。
您可以使用 javascript 检查当前页面是否为首页:
if (top == self) {
top.location = '/dashboard/';
}
但是当然可以关闭javascript。
这就是您可以防止在 jquery 中调用的方法,但我不明白为什么需要这样做,用户可以轻松地直接指向链接,如果您真的想要临时修复,那么您可以检查链接的父级是否存在
$('a').click(function(e){
if($(e.target).parent('#colourBoxID').length > 0){
//go to page
}
else{
//redirect
}
});
如果您在 iframe 中打开项目,这实际上是不可能的,因为浏览器将加载 iframe,就像它直接访问页面时加载它一样。
你可以做一个 nonce 类型的事情,在页面加载时生成一个数字,并将其作为 GET 变量传递给 iframe,iframe 将检查以确保传递给它的 val 与存储在 SESSION 中的相同会话不存在或不同,重定向;如果相同,则从会话中删除该值并正常加载。
不过,我不确定它的效果如何;它破坏的一个例子可能是如果用户尝试刷新 iframe,它最终会将您所在的网页(/dashboard/)嵌入到 iframe 中。
所以简单的答案是否定的,如果没有一些复杂性并冒着破坏人们体验的风险,这是不可能的。