2011-02-16 57 views
1

我正在嘗試創建一個完整的基於Ajax的網站。現在我只是研究它是如何工作的。我認爲最好的例子是Twitter。 Twitter在沒有啓用JavaScript的情況下會執行某些操作,但我無法找出如何操作。當你禁用JavaScript並轉到twitter,'?_twitter_noscript = 1'被追加到URL。任何想法他們如何做到這一點?如何禁用Javascript時重定向(如新的Twitter佈局)

親切的問候,

大安

+0

我看不到JS禁用的行爲。 – 2011-02-16 18:11:33

+0

馬特,你登錄了嗎? – Jeff 2011-02-16 18:15:51

回答

3

他們有自己的註冊表格上的隱藏輸入:

<input id="redirect_after_login" name="redirect_after_login" type="hidden" value="/?_twitter_noscript=1" /> 

啓用腳本,即變爲:

<input id="redirect_after_login" name="redirect_after_login" type="hidden" value="/" /> 

所以我的假設是他們有一些JavaScript改變了輸入的價值。

+0

...當JS啓用。 – 2011-02-16 18:12:08

0

我,Twitter的不工作javascript禁用。 我有我創建的代碼的成功:

的index.php中

<?php 
if (!isset($_SESSION)) session_start(); 
$url = !isset($_SESSION['ajaxpage']) ? '' : $_SESSION['ajaxpage']; 
$_SESSION['ajaxpage'] = ''; 
if (!isset($_GET['noscript'])) echo '<noscript><meta http-equiv="refresh" content="0; URL=/'.$url.'?noscript=1" /></noscript>'; 
?> 

在每個PHP文件我叫_head.php包含:

<?php 
if(!isset($_GET['ajax'])){ 
    if (!isset($_GET['noscript'])){ 
     if (!isset($_SESSION)) session_start(); 
     $_SESSION['ajaxpage'] = $ajax_page; 
     header('Location: /#!/'.$ajax_page); 
    } else { 
     // normal functions, requires... of all pages 
    } 
} 
?> 

在每個PHP文件我有與頁面的鏈接var,如:

<?php 
$ajax_page = '/contact/'; //change this for each page 
include_once('_head.php'); 
?> 

所以,就是這樣! 每個ajax加載,請加入'?ajax'到url,如:

$("body").delegate("a", "click", function(event){ 
    var lnk = $(this).attr("href"); 
    var addAjax = lnk.indexOf('?')>0 ? "&ajax" : "?ajax"; 
    $("#content").load("/"+lnk+addAjax); 
});