【发布时间】:2013-06-17 15:38:37
【问题描述】:
/*------------------------------------*\
FIXES (IE ONLY)
\*------------------------------------*/
if( preg_match( '/MSIE ([0-8].[0-9]{1,2})/', $_SERVER['HTTP_USER_AGENT'] ) ) {
wp_enqueue_script( 'respond', ( get_template_directory_uri() . '/assets/scripts/respond.min.js' ), false );
wp_enqueue_script( 'html5shiv', ( get_template_directory_uri() . '/assets/scripts/html5shiv.js' ), false );
wp_enqueue_script( 'selectivizr', ( get_template_directory_uri() . '/assets/scripts/selectivizr-min.js' ), array( 'jquery' ) );
}
我目前在WordPress中使用上面的代码来检测IE9下的IE。我这样做是因为即使 HTTP_USER_AGENT 是伪造的并且它们出现,它也不会破坏正常的浏览器行为,所以没有必要。
我需要一种方法(在 PHP 中)来检测浏览器是否处于兼容模式(浏览器和文档模式 IE8(或更低))。
http://dev.netcoding.net/sustain/
如果您在真正的 IE8 浏览器中测试该站点,respond.min.js 工作得非常好。但是在 IE9-10 中通过同时更改浏览器和文档模式来模拟 IE8 时,会导致选项卡崩溃。
我需要一种方法,只在它是真正的 IE8 浏览器而不是模拟浏览器时添加 respond.min.js。
【问题讨论】:
-
请注意,您的正则表达式将匹配
MSIE 100,如果我们能走到那一步!这是因为.匹配任何字符,因为你没有转义它。 -
感谢您的提醒,我将把它写在我 50 年的待办事项中。 :)
-
小心浏览器检测。这几乎总是一个坏主意。
标签: php internet-explorer-8 media-queries