阻止访问未在 colorbox/iframe 中打开的页面(重定向)



我有一个页面,如果它不是在彩盒中打开的,我不希望任何人能够访问。我想将它们重定向回"/仪表板/"。

澄清一下,如果页面是直接访问的(而不是在iframe/colorbox中),重定向,否则,加载页面。

您可以使用 javascript 检查当前页面是否为首页:

if (top == self) {
  top.location = '/dashboard/';
}

但是当然,JavaScript可以关闭。

如果您在 iframe 中打开项目,这实际上是不可能的,因为浏览器将加载 iframe,就像它直接访问页面时加载它一样。

你可以做一个随机数类型的事情,在页面加载时生成一个数字,并将其作为GET变量传递给iframe,这将检查以确保传递给它的val与存储在SESSION中的val相同,如果会话不存在或不同,则重定向;如果相同,则从会话中删除值并正常加载。

我不确定这会有多好;它中断的一个例子可能是,如果用户尝试刷新iframe,它最终会将您所在的网页(/dashboard/)嵌入到iframe中。

所以简单的答案是否定的,如果没有一些复杂性和破坏人们体验的风险,这是不可能的。

这就是您可以阻止 jquery 中的调用的方法,但我不明白为什么需要这样做,用户可以轻松地直接指向链接,如果您真的想要临时修复,那么您可以检查链接的父级是否存在

$('a').click(function(e){
    if($(e.target).parent('#colourBoxID').length > 0){
       //go to page
    }
    else{
    //redirect
    }
});

最新更新