Можно ли заставить IE7 перезагрузить DOM? Попытка обновить RSS href url в тегах ссылки - PullRequest
2 голосов
/ 06 февраля 2009

Я могу использовать этот код jQuery для динамического изменения ссылки RSS в DOM в Firefox & Chrome. http://path.com/feed обычно заменяется переменной, но не для этого примера.

$('#rssfeed').remove();
$('head').append('<link id="rssfeed" rel="alternate" type="application/rss+xml" href="http://path.com/feed"/>');

Функция живых закладок немедленно обновляется. Тем не менее, это не работает в IE7. В IE7 я попробовал этот метод, также создал в html и попытался обновить с помощью .setAttribute (href, 'path.com / feed'), и попытался создать новый элемент DOM и прикрепить его к "<_head>" (нет _ в реальном коде, конечно).

Единственный "успех", который у меня был, - это выполнение document.write. Большая проблема с этим заключается в том, что я не могу изменить его после загрузки страницы.

Может кто-нибудь порекомендовать альтернативный способ изменить элемент ссылки href и динамически перезагружать его в IE7? В качестве альтернативы, есть ли способ заставить браузер повторно интерпретировать или перезагрузить DOM без полного обновления страницы?

Ответы [ 4 ]

4 голосов
/ 06 мая 2009

К сожалению, краткие ответы на ваши вопросы - «Нет» и «Сортировка» из-за отсутствия поддержки браузером для обновления списка каналов, которые были изменены / добавлены / удалены в IE и Firefox.

Во-первых, чтобы добавить элементы в документ HEAD в IE (помните, что это относится и к CSS), вы должны обязательно указать первый элемент в массиве, который возвращается селектором элементов jQuery (обратите внимание на использование селектора eq (index) ):

$('head:eq(0)').append('<link id="rssfeed" rel="alternate" type="application/rss+xml" href="http://path.com/feed" title="Path (RSS)">');

Примечание. Я обнаружил, что атрибут TITLE облегчает просмотр изменений.

Хотя вы можете изменить атрибут HREF LINK как в IE, так и в Firefox (через DOM), , ни не обновит меню значков RSS. Однако , вы можете добавить LINK элементы, и они будут распознаваться в меню значков RSS, но старые записи останутся, потому что Firefox создает это меню только тогда, когда LINK s добавил .

Для получения дополнительной информации см. Следующие ссылки:

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

Что, если вы используете innerHTML для полной замены содержимого вашего тега head (или, возможно, даже используете externalHTML в существующей ссылке)? Не уверен, что это сработает (а я на машине с Linux), но, возможно, стоит попробовать.

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

В IE это может работать:

document.write (document.all [0] .innerHTML);

0 голосов
/ 09 февраля 2009
$('#rssfeed').attr('href, 'http://path.com/feed?id=25463456');

Установка URL-адреса со случайным идентификатором означает, что он не должен кэшироваться, так как он никогда ранее не обращался к этому URL-адресу. И это не должно влиять на ваш корм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...