0

我正在使用 WYSIWYG 编辑器 CKEditor,它显然与 Windows Phone 8 完全不兼容(当它放在头脑中时会破坏整个站点)。我不确定这是整体上的 IE 问题还是具体的 Win8 问题,但该网站将通过自定义 corp 应用程序包装器访问,因此不建议使用备用浏览器。我真的不在乎他们失去功能。

有没有一种简单的方法可以在 PHP 中将这样的内容写入头部?

if(OS == Windows Phone 8){
    //nothing
} else {
    echo "<script src=\"ckeditor/ckeditor.js\"></script>";
}

我对任何解决方案持开放态度,但我通常使用 PHP。

4

3 回答 3

3

如果脚本与 Windows Phone 8 不匹配,您可以检查 PHP 中的用户代理并包含该脚本:

$pattern = "/Windows\sPhone\s8/";
$user_agent = $_SERVER['HTTP_USER_AGENT'];

if(!preg_match($pattern, $user_agent))
{
    echo "<script src=\"ckeditor/ckeditor.js\"></script>";
}
于 2013-05-22T18:24:46.777 回答
2

如果是IEMobie 10导致问题的原因,您可以在 Useragent 中进行检查。

if(stristr($_SERVER['HTTP_USER_AGENT'], 'IEMobile/10.0') === FALSE)
    echo '<script src="ckeditor/ckeditor.js"></script>';

如果你愿意,你甚至可以用 Javascript 来做:

if(navigator.userAgent.indexOf('IEMobile/10.0') === -1)
    document.getElementsByTagName('head')[0].innerHTML += '<script src="ckeditor/ckeditor.js"></script>';

您还可以使用条件注释:

<![if !IEMobile]> 
<script src="ckeditor/ckeditor.js"></script>
<![endif]>
于 2013-05-22T18:36:09.363 回答
0

既然您使用的是 javascript,为什么不使用 javascript 而不是 PHP 来匹配用户代理呢?[信用]

if !(navigator.userAgent.match(/IEMobile\/10\.0/)) { ...

*在 Windows 7 手机上,您可以只使用 HTML来定位浏览器,但不幸的是,微软在 Windows Phone 7.5 中取消了该功能。

于 2013-05-22T18:42:59.997 回答