0

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

我的默认布局在“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,我想将最后三行设置为“禁用”。

任何帮助,将不胜感激。

4

2 回答 2

0

您可以使用条件注释保持简单,但正如@Borislav Sabev 所说,IE > 9 不会计算在内。另一种方法是使用 php 来完成。

我们使用一个组件Browscap来确定控制器端的浏览器。

您可以做的是添加该组件,并在beforeFilter部分AppController添加要传递给视图的全局变量。然后在视图中检查变量值,如果条件正确,则回显 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 中使用纯 php来检查。您也可以仅在视图中执行此操作而不涉及控制器,但我不建议这样做,将其留在控制器中更清洁。但我认为这是一个品味问题...

无论如何,请记住,没有什么是完全可靠的,浏览器会撒谎。

于 2013-07-02T16:46:55.350 回答
0

查看这些页面

并使用条件注释。

第二页的示例:

<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->
于 2013-06-28T15:24:41.517 回答