这个特定主题在SO上有一些答案,但没有一个能解决我的问题。我不知道在哪里看,虽然我怀疑它很简单。
HTML很简单:
<a href="http://www.mydomain.nl/url/to/whatever" class="fancybox hidden_link">test</a>
我用来自动点击它的Javascript也非常简单:
$(document).ready(function() {
$(".hidden_link").fancybox().trigger("click");
});
事件发生(Fancybox打开),但它只显示“无法加载的内容”消息。 当我手动点击链接时,我在Fancybox中看到了自己的页面。
我在这里缺少什么?
答案 0 :(得分:4)
有这个链接:
<a href="http://www.mydomain.nl/url/to/whatever" class="fancybox hidden_link">test</a>
...这个脚本:
$(document).ready(function() {
$(".fancybox").fancybox({
type: "iframe",
width : 380, // or whatever
height: 280
}).trigger("click");
});
......应该手动和以编程方式完成这两项工作。
参见 JSFIDDLE
注意我使用了type: "iframe"
,因为内容是外部页面。在任何情况下都应考虑same origin policy。
答案 1 :(得分:1)
这是同源政策的一个方面。确切的行为因浏览器而异。见http://code.google.com/p/browsersec/wiki/Part2#Navigation_and_content_inclusion_across_domains
这是summary per browser version。
这里显然存在安全问题,因为点击带有JavaScript的链接可能会导致您的行为。这可能对GET请求导致状态更改的站点具有破坏性,因为验证您的标头(如cookie)也将与该GET请求一起发送。
答案 2 :(得分:1)
答案 3 :(得分:1)
这是我给作者一段时间的解决方案。
$(document).ready(function() {
$.fancybox({
content: $("#popup"),
closeClick : false,
openEffect : 'none',
closeEffect : 'none',
helpers : {
overlay : {
closeClick: false,
}
}
});
});