我一直在努力让fancybox加载一个php文件,但没有成功......
以下是详细信息:
您可以访问遇到问题here的网站。单击每个图像旁边的“ΠαλαιάΔημοτικάΛουτρά”或“ΑρχαίοΩδείο”时,会调用Fancybox请求。
首先,页面的内容是通过ajax请求加载的。此页面包含以下链接:
<a class="area_fancybox" href="http://www.mysite/fancy_areas.php?areasName=' . $the_area . '">' . $the_area . '</a>
其中$ the_area变量是我想传递给fancybox将加载的php文件的参数。现在,当页面的内容已加载时,我添加了fancybox代码,就像这样。
jQuery('#diethnes_festival_2012').load('../../../diethnes_festival_2012.php', function() {
jQuery("a.area_fancybox").fancybox();
});
当您点击“area_fancybox”链接时,fancybox开始加载,但没有任何反应......
非常感谢任何帮助。
答案 0 :(得分:4)
Fancybox
ajax在您的链接没有此部分的情况下,从www
开始调用来自网址的请求。如果您在开始时使用www.
加载页面,则呼叫将起作用。
这是由allow-control-access-policy
浏览器引起的。始终使用firebug
或chrome developer tools
在控制台中查找错误。
答案 1 :(得分:2)
这是一个跨域问题(您不允许从域 mysite 加载来自 www.mysite 的内容。您会注意到,如果您访问网址中包含 www 的网站,然后按原样运行:http://www.mysite/events-pc/pc-festival/1610-diethnes-festival-patras-2012.html
我建议在 href 中使用相对路径,这样可以使您的代码适用于这两种情况:
<a class="area_fancybox" href="/fancy_areas.php?areasName=Παλαιά Δημοτικά Λουτρά">Παλαιά Δημοτικά Λουτρά</a>
顺便说一句,我建议你查看Firebug,如果你还没有 - 这对于调试这种事情真的很有帮助。如果你正在使用Chrome,只需点击ctrl-shift-J。