0

从顶部:

我正在为我的投资组合使用阴阳 WP 主题(' http://onioneyethemes.com/yin-and-yang/ '),我在 jQ 方面遇到了一些障碍事物。我已将代码复制到一个单独的模板中,以便以相同的方式使用,但我希望缩略图链接能够打开外部页面。如果链接是内部的 - 这太棒了。外部..不是那么多。它挂起。

你可以在这里看到一个“工作”[不是真的]版本:http: //ii.colorspace.am/events

我翻阅了代码并系统地提取了 js 引用以找到违规者。

这似乎是罪魁祸首: http: //ii.colorspace.am/wp/wp-content/themes/yin_and_yang/js/jquery.easing.1.3.js ?ver=3.3.1但我可能完全不合时宜.

不幸的是,它似乎也可以控制滑块功能(在缩略图/下拉联系人上)。

如果有人能告诉我我需要做什么才能允许我进行外部链接(无论是调整一些代码还是复制缓动文件并进行一些修改),那将不胜感激。

我猜可以在这里找到解决方案http://css-tricks.com/snippets/jquery/smooth-scrolling/但这对我来说都是希腊语,所以我一点也不知道该怎么做:(

4

1 回答 1

1

这是因为跨域策略。除非主机、端口和协议匹配,否则无法通过 ajax 打开内容。如果你不能让events.colorspace.am成为ii.colorspace.am你可以尝试两件事:

  1. 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。所以要么这个,要么:

  2. 重定向用户。如果图库链接允许您输入,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...
    

    基本上应该重定向用户。

/编辑:

终于明白了这个问题。这是您需要做的:

  1. <a class="project-link" href="http://events.colorspace.am/...>添加target="_blank"属性。
  2. 在记事本或其他任何地方打开/wp-content/themes/yin_and_yang/js/jquery.quicksand.init.js
  3. 在文件的开头找到一行说

    eQgetProjectViaAjax = function(e) { 
    
  4. 在它的正下方,添加以下行:

    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);
    }
    
  5. 保存所有内容并重试。这次它会起作用。

于 2012-04-16T07:06:20.620 回答