IE9 不允许使用 PHP 和内容类型 text/css 的动态样式



我的插件将动态CSS添加到前页面:

function form_css() {
    header( 'Content-Type: text/css' );
    header( 'Expires: Thu, 31 Dec 2050 23:59:59 GMT' );
    header( 'Pragma: cache' );
    if ( false === ( $css = get_transient( 'mymail_form_css' ) ) ) {
        // generate CSS here
        set_transient( 'mymail_form_css', $css );
    }
    echo $css;
    die();
}

添加两个动作钩:

add_action('wp_ajax_my_css', 'form_css');
add_action('wp_ajax_nopriv_my_css', 'form_css');

并加入样式:

wp_register_style('my-css', admin_url('admin-ajax.php?action=my_css'));
wp_enqueue_style('my-css');

此功能在所有浏览器(包括IE7 8)上都可以很好地工作。

我已经搜索了此问题,并发现了有关X-Content-Type-Options: nosniff标头的信息,但是添加header( 'X-Content-Type-Options: nosniff' )不能解决问题。

任何帮助都会受到赞赏

我想您的CSS是一个PHP文件?类似于style.css.php?

http://blog.s9y.org/archives/227-ie9-has-trouble-with-css-content-types.html-也许这可以帮助您....

mod_negotiate基本上将正确执行PHP文件并返回有效的CSS

更简单的答案,以将其用于"兼容视图"。

更多地阅读为什么在http://blogs.msdn.com/b/ieinternals/archive/2011/03/03/27/http-406-not-pocceptable-pocpectable-php-ie9-php-ie9-candards-andards-andards-mode-cectes-mode-acepts-mode-acepts-only-only-only-only-only-only-only-only-only-only-only-text_2f00_css-for-stylesheets.aspx-但是TLDR是Microsoft在他们接受的样式表方面更加严格,以帮助提高安全性。

Internet Explorer 9用户可以通过将网站兼容视图来解决该网站的错误。在兼容性视图中,IE恢复了其遗产行为,声称接受任何哑光类型以用于子下载请求,并且服务器返回响应而毫不费力。

您可以使用

更改模式
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" >

或那个Stil失败,请滴到IE8

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >

<meta http-equiv="X-UA-Compatible" content="IE=IE8" >

将其放在HTML标题中 - 只会影响IE。

我不知道这是否对某人有帮助。至少对我而言,确实如此:

WordPress在短码周围包裹P标签,并且由于我使用的是我的形式(和快捷代码)中的块元素,并且我和块元素在块元素中 - 不允许。

删除周围的P可以解决问题。

编辑:使用短代码空段落修复程序删除P的

相关内容

最新更新