Обновление RSS <link>URL с помощью Javascript? - PullRequest
1 голос
/ 22 апреля 2009

Можно ли динамически обновлять URL-адрес тега rss <link>, чтобы при щелчке по значку RSS в строке местоположения браузер направлял пользователя на обновленный URL-адрес?

Например, используя Jquery:

<link id="feed_url" rel="alternate" type="application/rss+xml" 
      title="RSS" href="/feed" />

<script type="text/javascript">
    $("#feed_url").attr("href", "/feed?foo=bar");
</script>

Теперь пользователь должен быть перенаправлен на /feed?foo=bar, а не /foo.

Обратите внимание, что значения в строке запроса определяются на лету на стороне клиента, поэтому URL-адрес должен обновляться через Javascript. Я не могу определить эти значения на стороне сервера.

Ответы [ 3 ]

2 голосов
/ 22 апреля 2009

Многие браузеры анализируют тег ссылки на DocumentComplete и не анализируют его позже, если он изменится. Так что технически это может быть обновлено, но браузер может не заметить. Вам придется тестировать в разных браузерах.

0 голосов
/ 22 апреля 2009

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

0 голосов
/ 22 апреля 2009

Почему вы используете javascript для обновления URL? Почему бы просто не изменить HTML?

Вы меняете шаблон / представление, чтобы добавить JavaScript, поэтому я не вижу никаких преимуществ в отправке браузеру неправильного адреса канала, а затем в использовании JavaScript для исправления адреса.

Если вы хотите динамически генерировать / изменять ссылку RSS, это должно быть сделано на стороне сервера. Вы можете сохранить адреса каналов для разных страниц в базе данных и динамически вставлять их на страницу при запросе страницы.

, например

<link id="feed_url" rel="alternate" type="application/rss+xml"
  title="<? echo $page['RSS']['title'] ?>"
  href="<? echo $page['RSS']['url'] ?>" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...