今天发现了一个关于IE浏览器的问题。测试发现搜索框在输入关键字之后,按回车键,Firefox, Chrome, Opera均会提交表单并跳转,但IE并不跳转,需要手动单击搜索按钮,因此添加了如下代码于productsearch/form.mini.phtml文件。
... <input id="search" type="text" ... onkeyup="javascript:enterHandle(event.keyCode);" type="text" /> ... <script type="text/javascript"> function enterHandle(keyCode){ if(window.ActiveXObject){ if (keyCode == 13) { searchsubmit(); } } } function searchsubmit(){ ... if(window.ActiveXObject) document.location.href=actions; jQuery('#search_mini_form').attr('action',actions); this.form.submit(); }
首先对文本框加入事件侦听(down, press, up都可以),然后如果按下回车键(ASCII CR 13),则调用提交方法。由于我们只针对IE浏览器,所以加了一个类似XMLHttpRequest的判断window.ActiveXObject。在提交的时候,我挑选了一个比较便捷的方法——修改URL,但修改URL貌似会是Chrome, Opera浏览器失效,所以果断又加了一次判断。
最后,友情提供一个比较少用,但我个人比较喜欢的标签,<pre>预处理标签,用来输出代码很好用哦,详情参见本博文中的代码段。