我们尝试在HTML文档的head部分动态更新我们的rss-links(使用JavaScript),以反映由于使用AJAX过滤而导致的页面更改。看起来这些并不是在浏览器中不断更新(如图......)。
(编辑:如果没有正确更新,我的意思是地址栏中的链接,而不是DOM本身。)
非常感谢。
修改:我没有任何代码示例,但我们尝试了以下内容:
edit2 :以下是无效的代码示例(serverResponse是传递给包含此代码的函数的对象.rssLink是该对象的属性,始终定义):< / p>
// Update <link>
var headLink = $('rssHead1');
// if we don't have a link in the header, create that element
if(!headLink) {
var head = $$('head').first(),
tag = '<link id="rssHead1" type=\"application/rss+xml\" rel="alternate">'
head.insert(tag);
headLink = $('rssHead1');
}
headLink.writeAttribute('href', serverResponse.rssLink);
headLink.writeAttribute('title', 'Monitor this search');
第二次尝试:
// Update <link>
var headLink = $('rssHead1');
if(headLink) { headLink.remove(); }
headLink = new Element('link', {'id' = 'rssHead1',
'type' = 'application/rss+xml',
'rel' = 'alternate',
'href' = serverResponse.rssLink,
'title' = 'Monitor this search'});
$$('head').first().insert({bottom: headLink});
答案 0 :(得分:1)
您的第一个示例实际上正常工作,DOM已正确修改。但是在考虑Firefox时,例如,地址栏中的rss signet没有更新:(
编辑:你的第二次尝试应该是:
// Update <link>
var headLink = $('rssHead1');
if(headLink) { headLink.remove(); }
headLink = new Element('link', {
'id': 'rssHead1',
'type': 'application/rss+xml',
'rel': 'alternate',
'href': serverResponse.rssLink,
'title': 'Monitor this search'
});
$$('head').first().insert({bottom: headLink});
它也正确地改变了head元素,但是地址栏中的rss链接没有更新。