【问题标题】:jQuery AJAX load stylesheets in Safari into <style> tagsjQuery AJAX 将 Safari 中的样式表加载到 <style> 标签中
【发布时间】:2011-09-10 08:15:35
【问题描述】:

我正在做的是我有一个中间页面设置作为其他页面的中心,这些其他页面可以静态指定(在中心页面内)或通过提供然后进入 AJAX 的 url 动态指定打电话。

我的问题来自 Safari 和 Safari。当 url 的页面有 &lt;style&gt;s 时,我的脚本会将它们全部选中并将它们放在中心页面的 &lt;head&gt; 中,因为那是它们应该在的位置,并且页面的其余部分由包装器并加载到集线器中。 Safari 不喜欢看到新样式。如果我将它们留在&lt;div&gt; 中,safari 就不会看到它们。

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

请求的示例:(这是在 ajax 完整函数中)

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

【问题讨论】:

  • 请举个例子。你说,样式在 head 和 div 里面——你的意思是,你有 head>div>style?
  • @Guard:不,这很愚蠢,而且我很确定它不能在任何浏览器中验证或工作。

标签: jquery html css safari stylesheet


【解决方案1】:

Gregg,我刚刚在 Safari 交互式控制台中尝试了以下操作

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

然后将页面上的所有文本变为白色。所以,我的建议是动态创建样式标签,附加它,然后从另一个样式标签中添加文本。

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

【讨论】:

  • 故事的寓意,创建 DOM 对象然后填充它
【解决方案2】:

我在使用最新的 Safari 时遇到了类似的问题。

Related SO

附加在 Chrome、IE 10 和 Safari 中有效的样式细节。

【讨论】:

    猜你喜欢
    • 2017-11-02
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多