Javascript仅在ios上抛出typeerror
Javascript throws typeerror on ios only
我遇到了一个奇怪的问题,我敢打赌这只是某个地方的一个非常愚蠢的错误,但我就是不知道我的代码出了什么问题。。
我有一个网站,它在每个常见操作系统上的每个(常见)浏览器上都能完美工作。在这个页面上,我有一个搜索栏,它在电脑上也可以很好地工作。这个栏还有一个jquery keyup事件,用于启动搜索。此事件未在ios上启动(第一个问题)。所以我添加了一个按钮作为变通方法。但这在ios上也不起作用。如果它能正常工作,它应该调用一个JS方法,该方法只将用户重定向到search.php页面,同时附加一个名为query的GET变量。我在电脑上加载了页面,错误控制台显示:
TypeError:不是函数(正在评估"search()")
不知何故,它似乎没有加载此方法。不管出于什么原因。所有其他JS方法都可以正常工作。只是这个拒绝工作。
搜索栏:
<input placeholder="Search" id="searchbar">
链接如下:
<a href="#" id="searchbutton" onclick="search();">start search</a>
JS方法如下所示:
var text = document.getElementById('searchbar').value;
window.location.href="./search.php?q="+text;
有什么想法吗?
似乎全局变量search
由iOS保留。尝试使用另一个名称,如mySearch
,然后它就工作了。
顺便说一句,您可以考虑使用名称空间或作用域来避免与库或系统发生冲突。
示例:
(function() {
function search() {
alert('test');
}
document.getElementById('searchbutton').onclick = search;
})();
或者,如果您坚持直接在元素中使用onclick
。
<a href="#" id="searchbutton" onclick="MyNamespace.search();">start search</a>
<script>
var MyNamespace = (function() {
function search() {
alert('test');
}
return {
search: search
};
})();
</script>
相关文章:
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 如何使bxslider仅在移动视图中处于活动状态
- 仅在IE中,javascript中的时区名称不正确
- 单击仅在第二次单击后有效
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- 对于loop.if-仅在经过所有间隔后返回true
- 边栏仅在单击外部时关闭单击
- 如何仅在首次登录时显示弹出窗口
- 数据属性仅在切换设备模式下工作
- Javascript:JSON请求仅在第一次工作
- $(input[]).仅在firefox中出现每个抛出语法错误
- 仅在小型设备上调用jQuery函数
- 如何仅在对象URL's已下载
- 使用条件语句,使 jquery fadeIn/fadeOut 仅在视口 >= 480px 时才有效
- 具有大型数据集的组件仅在 IE11/Edge 上运行缓慢
- 将LocalNotifications设置为仅在清醒时启动
- Javascript仅在ios上抛出typeerror
- 未捕获的TypeError仅在Chrome中
- Typeerror: Undefined表单元素仅在FireFox中
- TypeError: & # 39;未定义# 39;不是仅在Safari中与Tablesorter一起使用的函数