php
  • jquery
  • curl
  • 2011-05-18 127 views -5 likes 
    -5
    <html> 
        <head> 
        <script type="text/javascript" src="jquery-1.6.1.js"></script> 
        <script> 
         $('a').click(function(e) { 
         e.preventDefault(); 
         document.location.href='http://www.redirectlink.com?ref='+this.href; 
         return false; 
         }); 
        </script> 
    </head> 
    
    <?php   
        $ch = curl_init(); 
        curl_setopt ($ch, CURLOPT_URL, 'http://192.168.0.14:8081/home/'); 
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
        $curl_response = curl_exec($ch); 
        curl_close($ch); 
    
        echo $curl_response;  
    ?> 
    

    這應該工作嗎?它捲曲頁面,然後當你點擊頁面上的鏈接時,它應該重定向到http://www.redirectlink.com?ref='+ this.href捲曲部分有效,但不重定向。它仍然需要我原來的網址。 jquery-1.6.1.js文件與所有其他文件位於同一目錄中。請檢查這個錯誤

    編輯:問題修復。需要準備好JavaScript。

    +5

    -1問題標題 – 2011-05-18 10:38:39

    回答

    1

    重定向?

    四個問題:

    1)。您在文檔加載之前調用$('a')選擇器。你不會得到任何A的。你需要把它包裝在document.ready或類似的東西里。

    $(document).ready(function(){ 
        //put your script block here. 
    }); 
    

    2)。你需要在this.href上編碼UriComponent。 3)。你似乎認爲它是一個完全合格的URL,從來不是相對URL。 4)。如果你正在爲lookng是一個重定向,你需要只使用一個重定向頭(捲曲是沒有必要):

    if (array_key_exists('ref', $_GET)) 
    { 
        header('Location: '.$_GET['ref']); 
        exit; 
    } 
    

    注 - 必須去以上的任何輸出...基本上,移動你的php塊到文件的最頂端。


    澄清。根本不是重定向器:

    if (array_key_exists('ref', $_GET)) 
    { 
        echo file_get_contents($_GET['ref']; 
    } 
    

    上述塊將3個易於理解的行替換爲您的所有PHP代碼。

    +0

    謝謝,它似乎是按原樣工作。這只是代碼的一部分。我已經爲相關的網站做了帳戶。 – Michael 2011-05-18 10:39:43

    +0

    我剛剛給PHP部分添加了一個說明...確保你明白了。 :) – 2011-05-18 10:41:15

    +0

    你是什麼意思? – Michael 2011-05-18 10:44:42

    2

    我不是在jQuery的專家,但我相信你需要一個現成的函數

    $.ready(function() { 
        $('a').click(function(e){ 
         e.preventDefault(); 
         document.location.href='http://www.redirectlink.com?ref='+this.href; 
         return false; 
        }); 
    }); 
    

    嘗試以上......

    +0

    謝謝!有用。將接受答案,一旦我可以:) – Michael 2011-05-18 10:37:18

    0

    @Mayank,

    是正確的,

    做這樣的:

    <script> 
    $(document).ready(function(){ 
        $('a').click(function(e){ 
         e.preventDefault(); 
         document.location.href='http://www.redirectlink.com?ref='+this.href; 
         return false; 
        }); 
    }); 
    </script> 
    
    1

    也應該不是腳本開始:

    <script type="text/javascript"> 
    ... 
    </script> 
    
    +1

    首選但不是強制性的,特別是在HTML5中。 JavaScript是現在的默認語言(就像以前一樣)。 :) – 2011-05-18 10:39:11

    +0

    謝謝,我一直使用這個,所以我沒有意識到它現在不是強制性的 – CyberVitor 2011-05-18 10:42:31

    0

    您需要包裹整個事情就像:

    jQuery(document).ready(function($) { [your code] }); 
    
    0

    更重要的是,我認爲

    e.preventDefault(); 
    

    return false; 
    

    具有相同的行爲。

    相關問題