使用Javascript更新RSS <link /> URL?

时间:2009-04-22 01:33:29

标签: javascript rss

是否可以动态更新rss <link>标记的URL,以便在单击位置栏中的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

请注意,查询字符串中的值是在客户端动态确定的,因此必须通过Javascript更新URL。我无法在服务器端确定这些值。

3 个答案:

答案 0 :(得分:2)

许多浏览器将解析DocumentComplete上的链接标记,如果更改则不会在以后重新解析。从技术上讲,它可能会更新,但浏览器可能不会注意到。你必须在不同的浏览器中进行测试。

答案 1 :(得分:0)

为什么要使用javascript来更新网址?为什么不改变HTML?

您正在更改模板/视图以添加JavaScript,因此我没有看到向浏览器发送错误的Feed地址,然后使用所有内容的JavaScript来更正地址的任何优势。

如果要动态生成/更改RSS链接,应该在服务器端完成。您可以在数据库中存储不同页面的源地址,并在请求页面时动态地将它们插入到页面中。

e.g。

<link id="feed_url" rel="alternate" type="application/rss+xml"
  title="<? echo $page['RSS']['title'] ?>"
  href="<? echo $page['RSS']['url'] ?>" />

答案 2 :(得分:0)

请记住有饲料阅读器和agregator将在没有javascript的情况下阅读该页面。我不知道这对你来说是否是一个问题,但如果是,请提供默认的not-js-modified feed,或者禁用feed并为js-clients动态添加feed。