jQuery AJAX将Safari中的样式表加载到<style>标签</style>中

时间:2011-06-07 18:56:49

标签: jquery html css safari stylesheet

我正在做的是我有一个中间页面设置,作为其他页面的集线器,这些其他页面可以静态指定(在集线器页面内),也可以通过提供一个url然后进入AJAX动态指定调用

我的问题来自于Safari和Safari。当url'd页面有<style>时,我的脚本全部选中它们并将它们放在集线器页面的<head>内,因为那是它们应该在的位置,而页面的其余部分是由包装器选择并加载到集线器中。 Safari不喜欢看新款式。如果我将它们放在<div>内,那么safari就不会看到它们。

所以我正在寻找的解决方法是让Safari看到为类指定了样式。我已经测试了Firefox4,Chrome,Opera甚至Internet Explorer 9,它们都可以正常运行。

请求示例:(这是在ajax完成函数内部)

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

2 个答案:

答案 0 :(得分:2)

Gregg,我刚刚在一个safari交互式控制台中尝试了以下内容

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

然后将页面上的所有文本都变为白色。所以,我的建议是动态创建样式标记,附加它,然后添加其他样式标记的文本。

我认为这可能会做你想要的。

答案 1 :(得分:0)

我遇到了与最新Safari类似的问题。

Related SO

在Chrome,IE 10和Safari中附加样式详细信息。