Используя JavaScript, чтобы переопределить или отключить meta обновляют тег

У меня есть веб-сайт, где я пытаюсь использовать Ajax для обновления некоторого материала на странице, не перезагружая его. Однако существует хороший шанс, что многие мои пользователи будут использовать мобильные браузеры, которые не поддерживают JavaScript, таким образом, я пытаюсь разработать страницу с тегами обновления meta, это так или иначе работает только на пользователей без JavaScript. Там какой-либо путь состоит в том, чтобы сделать это?

Я пытался поместить тег в noscript элементе, но мой примитивный браузер сотового телефона не подтвердит это. Я думаю о, возможно, установке cookie, чтобы помнить, существует ли поддержка браузера пользователя JavaScript или наличие одной версии страницы, которая работает без JavaScript, и пытается использовать JavaScript для перенаправления пользователя к более сложной версии, но я задаюсь вопросом, если более изящный способ сделать это. У кого-либо есть какие-либо идеи?

20
задан Elias Zamaria 15 July 2010 в 05:39
поделиться

4 ответа

В этом случае метатеги ужасны. А как насчет поисковых систем ??

Что вам нужно сделать, так это сделать так, как я описал здесь . Ваши ссылки должны указывать на полностью работающие сайты, как если бы это была страница Web 2.0. Затем с помощью обработчиков событий (onclick) вы улучшаете взаимодействие с пользователем с помощью ajax.

Таким образом, пользователи ajax не будут переходить по ссылкам, ссылка скорее обрабатывается при нажатии и отправляет запрос ajax на тот же самый URL-адрес, но с параметром GET ajax.

Теперь на стороне сервера вы должны иметь возможность сгенерировать весь сайт каким-либо способом. Если это запрос ajax, вы отправляете связанный контент. Если это не ajax-запрос, создайте полный сайт со встроенной связанной частью .

Ваш сайт будет SEO-оптимизированным , доступным для мобильных пользователей и прогрессивно улучшенным для пользователей современных браузеров и платформ. Наконец, хеш-ссылки, сгенерированные с помощью ajax, можно будет использовать даже в качестве ссылок.

Великолепие . :)

3
ответ дан 30 November 2019 в 00:09
поделиться

Я согласен с тем, что метаобновление - это неправильный путь вперед. Помимо ссылки на галамбалаз, ищите "прогрессивное улучшение".

Однако, чтобы ответить на вопрос, вы можете попробовать следующее. Он не тестировался, может работать не во всех браузерах, но должен соответствовать правильному принципу:

var i, refAttr;
var metaTags = document.getElementsByTagName('meta');
for i in metaTags {
    if( (refAttr = metaTags[i].getAttribute("http-equiv")) && (refAttr == 'refresh') ) {
        metaTags[i].parentNode.removeChild(metaTags[i]);
    }
}

Еще неизвестно, остановит ли его удаление браузер от обновления во времени.

1
ответ дан 30 November 2019 в 00:09
поделиться

Вы не можете переопределить метатег обновления с помощью JavaScript.

Однако вы можете это сделать

Предположим, ваша страница находится по адресу ->

http://example.net/mike.html Поместите туда следующий код ->

<script type="text/javascript">
window.location = 'http://example.net/mike/for_Those_With_JavaScript_Enabled.html';
</script>
10
ответ дан 30 November 2019 в 00:09
поделиться

Просто удалите метатег с помощью javascript:

<meta http-equiv="refresh" content="2;http://new-url/" id="meta-refresh">

<script type="text/javascript">
var mr = document.getElementById("meta-refresh");
mr.parentNode.removeChild(mr);
</script>

Я установил тайм-аут обновления на 2 секунды выше, как пример. Вероятно, вы также могли бы уйти с 1 секундой, но не устанавливайте ее на 0, потому что в этом случае у javascript не будет возможности выполнить. 0 также раздражает, потому что нарушает удобство использования кнопки возврата.

Изменить 2012-10-23 Похоже, это больше не работает. Узел по-прежнему удаляется, но похоже, что браузеры каким-либо образом анализируют и хранят в памяти все метатеги.

3
ответ дан 30 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: