gpt4 book ai didi

php - 使用 Zend Framework 或 Javascript 进行浏览器检测

转载 作者:行者123 更新时间:2023-11-30 06:42:01 24 4
gpt4 key购买 nike

我正在创建一个需要上传大文件的应用程序。我选择使用 FormData对象作为使用这个我可以向用户报告进度。

毫不奇怪,IE 不支持这一点,因此我不得不退回到 Flash。使用 Zend Framework 检测 IE 7/8/9+ 的最佳方法是什么?我根据需要通过每个 Controller 中的 indexAction 方法加载其他 Assets 。例如:

public function indexAction()
{
$this->view->stepnumber = 1;
$this->view->stepintro = 'Upload your photo.';
$this->view->headScript()->appendFile($this->view->baseUrl().'/assets/js/fileuploader.js');
}

现在,在我的一个页面中,我已经完成了某种形式的浏览器检测(对于某些 canvas 工作):

public function indexAction()
{

$u_agent = $_SERVER['HTTP_USER_AGENT'];

$this->view->stepnumber = 5;
$this->view->stepintro = 'Select your cut out detail.';

if(preg_match('/MSIE/i', $u_agent)) {
$this->view->headScript()->appendFile($this->view->baseUrl().'/assets/js/excanvas.js');
} else {
$this->view->headScript()->appendFile($this->view->baseUrl().'/assets/js/mootools/mootools-canvas-lib/mcl-min.js');
}

$this->view->headScript()->appendFile($this->view->baseUrl().'/assets/js/frank/pentool.js');

$image = $this->uploadsDb->getImage();

$data = $this->nodedataDb->getNodedata($image->id);

$this->view->image = $image;
$this->view->nodeData = $data;


}

虽然我不太喜欢这种方法,但我宁愿使用 Javascript 检查一下,因为这会更适合 future (我认为)。但是我将如何在我的 ZF layout.phtml 中使用 Javasript,以便我只加载我需要的 Javascript?减少对服务器的调用。

非常感谢任何帮助。

解决方案:

我决定使用 YepNope:

yepnope({  
test : "FormData" in window,
yep : 'normal.js',
nope : 'flashupload.js'
});

最佳答案

如果您正在寻找一种简单的方法来为仅 IE 的浏览器附加 css 样式表/javascript 文件,您可以使用条件注释参数,如下所示:

对于 css 样式表之外的任何文件:

$this->view->headLink()->appendFile($this->view->baseUrl() . '/media/js/core.js', 'text/javascript', array('conditional' => 'IE');

注意 array('conditional' => 'IE') 参数。

对于附加样式表文件,函数参数略有不同:

$this->view->headLink()->appendStylesheet($this->view->baseUrl() . '/media/css/core.css', 'all', 'IE');

http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.headstyle

关于php - 使用 Zend Framework 或 Javascript 进行浏览器检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10432641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com