首页 > 解决方案 > Mac 上 Safari 中的 JS window.location 问题

问题描述

我的网站上有一个非常基本的搜索框。它在每个主要浏览器的 Windows 上都运行良好。在 Chrome 和 Safari 中的 iOS 上运行良好。在 Safari 上,特别是在 Mac 上(最新的 Safari/最新的 Mac),它有一个问题。我有一个客户报告它,但我也可以在 Browserstack 中重现。

这是最基本的“获取搜索词并重定向到搜索页面”代码,但在 Mac 上它只是重定向到错误的 URL。我错过了什么?

在 Windows 上,生成的 URL 是(根据通过 URL 的后端): https://dev7.blah.com/search/ergo

在 Mac 上,生成的 URL 是: https://dev7.blah.com/

   $(document).on('keyup', '.searchKeyword', function(e){                                
        if(e.keyCode == 13) {
            var url = window.location.protocol + "//" + window.location.hostname;   
            if(url.slice(-1) != "/") {
                url = url+"/";
            }   
            url = url+"search"; 
            var keyword = $(this).val();            
            if(keyword.trim() != '') {
                url = url+"/"+keyword;
            }            
            location.href = url;
        }
    });

编辑:我完全删除了 jQuery,仍然得到相同的结果:

function doSearch(event) {    
    if(event.keyCode == 13) {        
        var url = getURL();         
        var keyword = document.getElementById('searchBox').value;            
        if(keyword.trim() != '') {
            url = url+"search/"+keyword;
        }            
        window.location.href = url;
    }
}

标签: javascriptmacossafari

解决方案


推荐阅读