如果没有使用某个浏览器,如何设置cakephp以禁用代码行

如果没有使用某个浏览器,如何设置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

我计划将JQUERY mobile集成到一个web应用程序中,但是当我添加JQUERY mobile时,它在IE中无法正常工作,如果浏览器是IE或不支持HTML5功能的浏览器,我需要一个插件或代码来禁用JQUERY mobile的javascript CDN代码。这将允许用户在线查看应用程序而不会出现问题

我的默认布局在“default.ctp”中

这是我的头代码:

<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版本,没有条件注释。