如果未在colorbox / iframe中打开,则阻止访问页面(重定向)

时间:2012-09-19 14:40:16

标签: php jquery colorbox

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

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

3 个答案:

答案 0 :(得分:2)

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

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

但当然可以关闭javascript。

答案 1 :(得分:0)

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

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

我不确定这会有多好用;如果用户尝试刷新iframe,它可能会导致将您所在的网页(/ dashboard /)嵌入到iframe中。

所以简单的答案是否定的,没有一点复杂性,并且有可能破坏人们的经验,这是不可能的。

答案 2 :(得分:0)

这是你如何阻止jquery中的调用,但我不明白为什么需要这个,用户可以轻松地直接链接,如果你真的想要一个临时修复,那么你可以检查链接的父节点< / p>

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

       //go to page

    }
    else{

    //redirect
    }
});