2012-04-16 30 views
0

從頂部:鏈接「出」 JQ

我使用的是陰&陽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/中查到,但是它是所有希臘給我,所以我不會有絲毫的想法是什麼,用它做:(

+0

所以你的問題是,當你點擊小圖片大拇指時,它不會加載帖子?如果你檢查Ajax響應,它看起來像是拋出一個錯誤... – 2012-04-16 06:40:07

+0

我實際上並沒有試圖加載帖子 - 我想保持審美,而不是鏈接到博客條目上http:// onioneyethemes .com/yin-and-yang /我想鏈接網站。 我更改了演示網站上的目標網址(不適用於Chrome) - 在內部鏈接時運行良好,在外部掛起時運行良好。 如何找到迴應? – 2012-04-16 06:53:25

回答

1

這是因爲跨域政策你通過AJAX無法打開的東西,除非主機,端口和協議的比賽。如果你不能得到events.colorspace.amii.colorspace.am有兩件事情可以嘗試:

  1. on 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,但與這一個

    <script> window.location.href=<?php echo json_encode($_GET['url']); ?>; </script> Please wait you will be redirected... 
    

    哪些應該基本上重定向用戶更換die(file_get_contents(...))代碼。

/編輯:

終於明白了這個問題。這裏有您需要做什麼:

  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. 保存一切,再試一次。這次會起作用。

+0

我會給第一個嘗試在第二..但只是想知道..有沒有辦法有一個div(或類的東西)存在外,但在ajax函數的頂部? 另外:RE:#2 - 它不只是在父窗口和新窗口? – 2012-04-16 07:12:48

+0

有點失落。我在根中創建了'link.php',它只包含<?php die(file_get_contents($ _ GET ['url'])); ?> 我將鏈接改爲/link.php?url=,然後是網址,但它似乎沒有做任何事情。 #2中的