javascript - 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;
}
}
解决方案
推荐阅读
- javascript - 遍历 JSON 中的对象
- python - pandas 按日期和值比较某些列条目
- javascript - 使用 Cytoscape 限制放置区域
- java - Spring MVC - 在 POJO 中使用连字符查询参数
- selenium - Selenium navigate().to() 卡住没有错误
- sql - 将查询中的空值替换为以前的值
- wiremock - 使用wiremock中请求url的查询参数从jsonBody获取特定对象
- r - 如果 id 是“重复的”,那么在给定一些标准的情况下,我如何才能只保留一个观察结果
- c - 如何处理内存访问冲突?
- node.js - 如何在 Mocha 中创建具有特定大小的模拟帖子对象