我有一个页面,如果没有在彩盒中打开,我不希望任何人能够访问。我想将它们重定向回“/ dashboard /".
为了澄清,如果直接访问页面(不在iframe / colorbox中),重定向,否则,加载页面。
答案 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
}
});