Как перенаправить, когда Javascript отключен (например, новый макет Twitter) - PullRequest
1 голос
/ 16 февраля 2011

Я пытаюсь создать полноценный сайт на основе ajax.Сейчас я просто исследую, как все это работает.Лучший пример, я думаю, это Twitter.Твиттер делает что-то, когда JavaScript не включен, но я не могу узнать, как.Когда вы отключаете javascript и заходите в твиттер, к URL добавляется '? _Twitter_noscript = 1'.Есть идеи, как они это делают?

С уважением,

Даан

Ответы [ 3 ]

3 голосов
/ 16 февраля 2011

У них есть скрытый вход в форму регистрации:

<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, изменяющий значение этого ввода.

1 голос
/ 17 февраля 2011

Twitter использует мета-обновление, когда Javascript отключен.

Я нашел следующий код в источнике http://www.twitter.com, когда Javascript включен:

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

Примечание. Источникиз http://twitter.com/?_twitter_noscript=1 не будет иметь этот код

0 голосов
/ 01 августа 2011

со мной, Твиттер не работает с отключенным 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);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...