在新打开的浏览器窗口上附加CSS

时间:2013-05-09 01:41:55

标签: jquery css asp.net-mvc reference

我正在尝试使用ajax调用打开一个包含检索到的视图及其数据的新浏览器窗口。

    $.ajax({
            type: 'POST',
            url: redirectToANewWindow,
            dataType: 'html',
            data: { filterValue: searchValue },
            success: function (result) {
              var NewBrowserWindow = window.open('', '_blank', 'height=500,width=900,scrollbars=yes,location=no');
              $(NewBrowserWindow.document.body).html(result);
            }
    });

字段及其数据显示在新打开的浏览器上。但是返回的视图上没有CSS,因此所有字段都很混乱。我的主要CSS在其他地方声明,出于某种原因,我无法在返回的视图中声明它。我的问题是,如何返回此视图并附加CSS文件?

我试过了,

success: function (result) {
     var styles = "<link rel='stylesheet' href='../Content/GlobalStyle.css' />";
     var NewBrowserWindow = window.open('', '_blank', 'height=500,width=900,scrollbars=yes,location=no');
     $(NewBrowserWindow .document.head).html(styles);
}

但是虽然我可以在html上看到添加的CSS引用,但它不起作用。难道它找不到我引用的文件吗?

我顺便使用 MVC

2 个答案:

答案 0 :(得分:2)

试试这段代码:

$('<link/>', {
       rel: 'stylesheet',
       type: 'text/css',
       href: '../Content/GlobalStyle.css'
    }).appendTo('Head');

答案 1 :(得分:0)

未经测试的代码但请尝试:

var addStylesheetTo = function(url, target) {
    var link = $('<link/>');
    link.attr({
        type: 'text/css',
        rel: 'stylesheet',
        href: url
    });
    $(target).append(link);
};

addStylesheetTo('/the/url/of/your/stylesheet.css', NewBrowserWindow.document.head);