jquery - 如何应用使用 jQuery 动态加载的内联和/或外部 CSS

标签 jquery css ajax

我有一个使用 jQuery 加载到 Yahoo 弹出窗口中的 Ajax 控件。

我只是使用一个简单的 .get 请求来加载 HTML。

  $.get(contentUrl, null, function(response) {
         $('#dialog').find('.bd').assertOne().html(response);
     }, "waitDlg");

现在的问题是加载的内容需要自己的 CSS,它实际上是动态创建的。我可以选择内联或使用外部 CSS 样式表。

在 Chrome 中进行的测试表明,通过 AJAX 加载的 CSS 在使用上述代码添加到 DOM 时未被评估/应用。

Internet Explorer 评估一个内联 CSS,当它刚好卡在 DOM 中时,但 Chrome 不会。由于一个完全不相关的问题,我目前无法在 FireFox 中进行测试。

jQuery 中是否有任何方法可以评估动态添加到 DOM 的样式表,无论是内联还是 ?

我想这样做有很多原因:

  • 弹出窗口中的 CSS 属于弹出窗口,可能完全来自不同的环境
  • 它是动态的,除非绝对必要,否则我不想将它放在父页面中
  • 我计划让它像这样工作,但它没有! :-(

最佳答案

给定样式表的路径(或生成有效 CSS 的一些 URL):

var myStylesLocation = "myStyles.css";

...其中任何一个都应该有效:

使用 AJAX 加载

$.get(myStylesLocation, function(css)
{
   $('<style type="text/css"></style>')
      .html(css)
      .appendTo("head");
});   

使用动态创建的加载

$('<link rel="stylesheet" type="text/css" href="'+myStylesLocation+'" >')
   .appendTo("head");

使用动态创建的<style>加载

$('<style type="text/css"></style>')
    .html('@import url("' + myStylesLocation + '")')
    .appendTo("head");

$('<style type="text/css">@import url("' + myStylesLocation + '")</style>')
    .appendTo("head");

关于jquery - 如何应用使用 jQuery 动态加载的内联和/或外部 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/805384/

相关文章:

在下面添加新表格以显示卡住 Pane 等效果时出现 HTMl 表格宽度问题

html - 仅部分页面滚动的 html 布局的替代方案

javascript - 为什么我的代码在本地表现不同并且未加载正确的 json 响应?

javascript - 根据jquery中的数据属性在bootstrap multiselect中选择值

jquery - 将 Css 类添加到所有 &lt;input type'text'> 元素? Javascript/CSS?

html - 网站侧面的粘性按钮(不动)

ajax - 通过GET请求下载图片但获取 'application/octet-stream'

javascript - 根据上一页的用户输入,在页面加载时执行 JS 函数

javascript - 单击按钮从 Div 复制到输入框

jquery - 通过 JQuery “on” 和 dart :js 监听 Dart 中的事件