我怎么能不加载一个JS脚本在某个操作系统客户端

How can I not load a JS script on a certain OS client?

本文关键字:脚本 JS 客户端 操作系统 一个 怎么能 加载      更新时间:2023-09-26

我使用的是WYSIWYG编辑器CKEditor,它显然与Windows Phone 8完全不兼容(它在头部时会破坏整个网站)。我不确定这是IE的问题还是Win8的问题,但该网站将通过自定义的公司应用程序包装器访问,因此建议使用替代浏览器是不可能的。我真的不关心他们是否失去了功能。

有一个简单的方法,我可以写这样的东西到头部在PHP?

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

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

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

$pattern = "/Windows'sPhone's8/";
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if(!preg_match($pattern, $user_agent))
{
    echo "<script src='"ckeditor/ckeditor.js'"></script>";
}

如果是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]>

既然你正在使用javascript,为什么不匹配用户代理使用javascript而不是PHP?(信贷)

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

*在Windows 7手机上,你可以只使用HTML来瞄准浏览器,但不幸的是,微软在Windows phone 7.5中取消了这一功能。