2011-02-16 75 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); 
});