2011-02-16 3 views
1

전체 아약스 기반 웹 사이트를 만들려고합니다. 지금은 모든 것이 어떻게 작동하는지 연구하고 있습니다. 내가 생각하는 가장 좋은 예는 트위터 다. 트위터는 자바 스크립트가 활성화되어 있지 않을 때 무언가를하지만, 어떻게 찾을 수없는 것입니다. 자바 스크립트를 사용 중지하고 트위터로 이동하면 '? _twitter_noscript = 1'이 URL에 추가됩니다. 그들이 어떻게하는지 모든 아이디어?Javascript가 비활성화 된 경우 리디렉션하는 방법 (새 Twitter 레이아웃처럼)

종류와 관련,

Daan 그들은 그들의 가입 양식에 숨겨진 입력이

+0

내가 장애인 JS와 그 동작을 볼 수 없습니다. –

+0

매트, 로그인 했습니까? – Jeff

답변

1

자바 스크립트가 비활성화되면 Twitter에서 메타 새로 고침을 사용합니다.

<noscript> 
     <meta http-equiv=refresh content="0; URL=/?_twitter_noscript=1" /> 
</noscript> 

참고 : 나와 함께

+0

나는 또한 오늘 아침에 그것을 발견했다. 내가 어제 그것을 찾지 못한 이유는 너무 어리 석다. 전체 아약스 트위터 UI를 사용하려면 로그인해야한다는 사실을 잊어 버렸습니다. –

3

: 그래서

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

:로 변경 스크립트가 활성화되어

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

, 내 가정은 그들이 입력 값을 변경하는 JavaScript를 가지고 있다는 것입니다.

+0

... JS를 사용할 수 있습니다. –

+0

예, JS가 비활성화 된 상태에서 'value = "/? _ twitter_noscript = 1"'이 로그인 스크립트에 제출됩니다. – drudge

+0

괜찮 았지만, 어떻게하면 리디렉션됩니까? 숨겨진 입력이라면 제출해야합니까? –

0

, 트위터가 작동하지 않습니다 http://twitter.com/?_twitter_noscript=1의 소스 코드를 필요가 없습니다 자바 스크립트를 사용할 때

나는 http://www.twitter.com의 소스에 다음 코드를 발견 자바 스크립트가 비활성화되었습니다.

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>'; 
?> 

에 포함되어 내가 _head.php 전화 각 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가 있습니다.

그렇습니다. 각 아약스로드, 가입하시기 바랍니다 URL로, 같은 '아약스?'

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