这是因为跨域策略。除非主机、端口和协议匹配,否则无法通过 ajax 打开内容。如果你不能让events.colorspace.am成为ii.colorspace.am你可以尝试两件事:
在ii.colorspace.am上托管一个充当代理的 .php 文件。基本上它只会包含<?php die(file_get_contents($_GET['url'])); ?>
一些基本验证,以确保它$_GET['url']
实际上是events.colorspace.am中的有效地址。放置此文件后,您必须更新图库上的链接,以便将http://events.colorspace.am/g/20120331改为http://ii.colorspace.am/file.php ?url=http://events.colorspace.am/g/20120331。所以要么这个,要么:
重定向用户。如果图库链接允许您输入,javascript:window.open('http://events.colorspace.am/g/20120331')
这将很容易。但实际上,一些弹出窗口阻止程序可能会取消它,并且您使用方法 1 会更安全,但是用die(file_get_contents(...))
这个替换代码
<script> window.location.href=<?php echo json_encode($_GET['url']); ?>; </script> Please wait you will be redirected...
基本上应该重定向用户。
/编辑:
终于明白了这个问题。这是您需要做的:
- 在
<a class="project-link" href="http://events.colorspace.am/...>
添加target="_blank"
属性。
- 在记事本或其他任何地方打开
/wp-content/themes/yin_and_yang/js/jquery.quicksand.init.js
在文件的开头找到一行说
eQgetProjectViaAjax = function(e) {
在它的正下方,添加以下行:
var href = $(this).attr('href');
if(href.indexOf('://')!==-1){
href = href.split('://');
host = window.location.href.split('://');
if(href[0]!==host[0]) return setTimeout(function(){ $('#overlay').hide(); },500);
href = href[1].split('/');
host = host[1].split('/');
if(href[0]!==host[0]) return setTimeout(function(){ $('#overlay').hide(); },500);
}
保存所有内容并重试。这次它会起作用。