如果没有使用某个浏览器,如何设置cakephp以禁用代码行
我计划将JQUERY mobile集成到一个web应用程序中,但是当我添加JQUERY mobile时,它在IE中无法正常工作,如果浏览器是IE或不支持HTML5功能的浏览器,我需要一个插件或代码来禁用JQUERY mobile的javascript CDN代码。这将允许用户在线查看应用程序而不会出现问题 我的默认布局在“default.ctp”中 这是我的头代码:如果没有使用某个浏览器,如何设置cakephp以禁用代码行,cakephp,browser,Cakephp,Browser,我计划将JQUERY mobile集成到一个web应用程序中,但是当我添加JQUERY mobile时,它在IE中无法正常工作,如果浏览器是IE或不支持HTML5功能的浏览器,我需要一个插件或代码来禁用JQUERY mobile的javascript CDN代码。这将允许用户在线查看应用程序而不会出现问题 我的默认布局在“default.ctp”中 这是我的头代码: <head> <!--<link href='http://fonts.googleapis.com/cs
<head>
<!--<link href='http://fonts.googleapis.com/css?family=Tauri' rel='stylesheet' type='text/css'>-->
<link href='http://jomhuriye.99k.org/fonts/discoveryfonts.css' rel='stylesheet' type='text/css'>
<?php echo $this->Html->charset(); ?>
<title>
<?php echo $title_for_layout; ?>
</title>
<?php
echo $this->Html->meta('icon');
?>
<?php
echo $this->Html->css('bootstrap');
echo $this->Html->css('default');
echo $this->Html->css('flat-ui');
echo $this->Html->script('jquery-1.7.1');
echo $this->Html->script('jquery-ui');
echo $this->Html->css('calendar');
//echo $this->Html->script('sliding.form');
echo $this->Html->script('bootstrap');
echo $this->Html->script('application');
echo $this->Html->script('datetime');
echo $this->Html->script('calendar');
echo $this->Html->script('forms');
echo $this->fetch('meta');
echo $this->fetch('css');
echo $this->fetch('script');
?>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile- 1.3.1.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
如果使用IE或者浏览器不支持HTML5,我想将最后三行设置为“禁用”
如有任何帮助,我们将不胜感激。请参阅这些页面
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->
你可以用条件注释保持简单,但正如@Borislav Sabev所说,IE>9不算在内。另一种方法是使用php实现 我们使用一个组件来确定控制器端的浏览器 您可以做的是添加该组件,并在
AppController
的beforeFilter
部分添加要传递到视图的全局变量。然后在视图中检查变量值,如果条件正确,则回显jquery移动调用
应该是这样的
class AppController extends Controller {
public $components = array('Browscap' /*and the others*/);
public function beforeFilter() {
$this->Browscap->startup();
$browser = $this->Browscap->get();
$this->set('browser', $browser['browser']);
}
}
在我看来
if ($browser == 'IE')
//do nothing
else
echo jquery thing
当然,您不需要使用该组件,您可以在AppController中编写您的组件来检查它。您也可以仅在视图中执行此操作,而不涉及控制器,但我不建议这样做,将其留在控制器中更干净。但我认为这是品味的问题
无论如何,请记住,没有什么是完全可靠的,浏览器是谎言。问题是,由于“IE>=10现在非常先进”(根据微软的说法),因此对于高于9的IE版本,没有条件注释。