0

我有一个页面,如果它没有在颜色框中打开,我不希望任何人能够访问它。我想将它们重定向回“/dashboard/”。

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

4

3 回答 3

2

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

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

但是当然可以关闭javascript。

于 2012-09-19T14:48:14.873 回答
0

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

$('a').click(function(e){
    if($(e.target).parent('#colourBoxID').length > 0){

       //go to page

    }
    else{

    //redirect
    }
});
于 2012-09-19T14:48:33.800 回答
0

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

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

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

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

于 2012-09-19T14:45:05.140 回答