在IE 7中调用Ajax后,CSS样式消失了

时间:2009-04-16 08:48:52

标签: asp.net css ajax

我在AJAX调用后没有应用我的样式时出现问题。我的风格不在< HEAD>页面的一部分,它们仅在初始Page_Load上由IE识别。

如果您知道解决此问题的任何其他方法,请在此处发布。

这更像是一个参考,希望这有助于一些人。

2 个答案:

答案 0 :(得分:2)

在做了一些谷歌搜索后,我发现了moving my styles into the < HEAD> tag of the page fixes问题。

答案 1 :(得分:0)

您还可以从AJAX HTML中获取样式,并将其插入头部。这是一些示例代码。在IE8和Chrome中测试过。

function enable_embedded_styles(html) {
// Grab style content, and create new style element for it
// Works for first set of <style></style> tags in html
// Tested in IE and Chrome
    if (typeof(html) === 'string') {
        var beg = html.indexOf('<style>'), 
            end = html.indexOf('</style>');

        if (beg !== -1 && end !== -1) {
            var style = html.substr(beg + 7, end - 7 - beg); // everything between style tags
            html = html.substr(end + 8); // everything after closing style tag

            s = document.createElement('style');
            s.setAttribute('type','text/css');

            // For IE
            if (s.styleSheet) {
                s.styleSheet.cssText = style;
            } // endif

            // For every other browser
            else {
                s.appendChild(document.createTextNode(style));
            } // endelse

            // Append stylesheet to head
            document.getElementsByTagName('head')[0].appendChild(s);
        } // endif
    } // endif

    return html;
} // endfunction