如何使用jquery / AJAX加载外部Css文件?

时间:2016-12-30 05:56:51

标签: javascript jquery html css ajax

我在10秒后发送AJAX请求以从Nodejs Server获取数据但我继续接收解释为样式表并转换为mime-type html / css的资源。服务器返回text / html。代码工作正常但外部css dosnt工作。以下代码对我来说功能正常,但我想加载外部css文件

我的代码在这里

$(document).ready(function() {
    timer = window.setTimeout(function() {
        $.ajax({
            url: '/jrt/?Id=$data.jet.id',
            method: "GET",
            cache: false,
            success: function(data) {
                //$("#gt").append(data);
                $('#gt').html(data);
                if (state == 'jr' || state == 'jt')
                {
                    window.clearTimeout(timer);
                }
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('error ' + textStatus + " " + errorThrown);
            }
        })
    }, 10000);
});

1 个答案:

答案 0 :(得分:0)

基于this回答。它似乎只是通过javascript。

此代码创建一个id,用于检查if语句link.id是否已存在。然后它创建一个<link></link>,然后添加所有属性。

var cssId = 'myCss';  // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
    var head  = document.getElementsByTagName('head')[0];
    var link  = document.createElement('link');
    link.id   = cssId;
    link.rel  = 'stylesheet';
    link.type = 'text/css';
    link.href = 'http://website.com/css/stylesheet.css';
    link.media = 'all';
    head.appendChild(link);
}

未经测试,但也许这会奏效:

var cssId = 'myCss';  // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
    var $head  = $('head');
    var link  = document.createElement('link');
    link.attr({
        id:cssId, 
        rel:'stylesheet',
        type:'text/css',
        href:'http://website.com/css/stylesheet.css', 
        media:'all'
    });
    $head.append(link);
}