我怎么能不加载一个JS脚本在某个操作系统客户端
How can I not load a JS script on a certain OS client?
我使用的是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中取消了这一功能。
相关文章:
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 当脚本由system.js加载时,如何要求('electron')
- 如何在运行时在angular 2中加载外部js脚本
- 使用JS在服务器上运行PHP脚本
- 将脚本缓存到本地存储的basket.js概念仍然是一个好主意吗
- 如何将模板中的标记脚本移动到.js文件中
- 通过浏览器加载页面时触发加载脚本(js或jQuery)'s”;返回“;作用
- 按顺序加载脚本.js和使用.js
- 在节点中运行 python 脚本.js语法错误
- 未捕获的类型错误:无法读取未定义的属性“indexOf”(观察者脚本.js)
- PHP 无法调用 shell 脚本 (js -> php -> sh)
- 未调用脚本 JS
- D3中的脚本.js使Chrome崩溃
- “不允许加载本地资源”的咖啡脚本.js在Chrome中
- 我可以使用内容脚本js文件以编程方式注入CSS文件吗
- 加载后自动登录网站-用户脚本(JS)
- 自动更新脚本js/svg
- 我如何传递一个变量到我的脚本.js文件
- 如何从aspx文件中的脚本将值设置为脚本(.js)文件中的变量