jQuery AJAX загружает таблицы стилей в Safari в теги <style> - PullRequest
3 голосов
/ 07 июня 2011

Что я делаю, так это то, что у меня есть промежуточная настройка страницы, которая действует как концентратор для других страниц, эти другие страницы могут быть заданы либо статически (внутри страницы концентратора), либо динамически, путем предоставления URL, который затем входит в AJAX. позвоните.

Моя проблема возникает только с Safari и Safari. Когда страница URL имеет <style> s, мой скрипт выделяет их все и помещает их в <head> страницы концентратора, потому что именно там они и должны быть, а остальная часть страницы выбирается обертка и загружается в хаб. Safari не любит видеть новые стили. И сафари не видит их, если я оставлю их, как они были внутри <div>.

Итак, я ищу обходной путь, чтобы Safari увидел, что для классов определены стили. Я протестировал Firefox4, Chrome, Opera и даже Internet Explorer 9, и все они работают.

Пример по запросу: (это внутри функции завершения ajax)

responseText = jqXHR.responseText;
var dummy = $("<div></div>");
$('head').append(dummy.html(responseText).find("style"));

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

Грегг, я только что попробовал следующее в интерактивной консоли Safari

var style=$("<style></style>");
$("head").append(style);
style.text("* { color: white !important; }");

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

Я думаю, что это может делать то, что вы хотите.

0 голосов
/ 11 июня 2013

У меня была похожая проблема с последним Safari.

Связанные SO

Добавление деталей стиля, работавших в Chrome, IE 10 и Safari.

...