今天发现了一个关于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>预处理标签,用来输出代码很好用哦,详情参见本博文中的代码段。