Javascript 仅在 ios 上抛出类型错误
Javascript throws typeerror on ios only
我有一个奇怪的问题,我敢打赌这只是某个地方的一个非常愚蠢的错误,但我就是想不通,我的代码有什么问题..
我有一个网站,在每个(常见的)浏览器和每个常见 os 上都运行良好。
在这个页面上,我有一个搜索栏,它在电脑上也能很好地工作。此栏还有一个 jquery keyup 事件,用于开始搜索。
此事件不会在 ios 上触发(第一个问题)。所以我添加了一个按钮作为解决方法。但这也不适用于 ios。
如果它能正常工作,它应该调用一个 JS 方法,该方法仅将用户重定向到 search.php 页面,同时附加一个名为查询的 GET 变量。我在电脑上加载了页面,错误控制台显示:
TypeError: 不是函数(正在计算 'search()')
它似乎没有加载此方法。不管出于什么原因。所有其他 JS 方法都可以正常工作。只有这个拒绝工作。
搜索栏:
<input placeholder="Search" id="searchbar">
link 看起来像这样:
<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>
我有一个奇怪的问题,我敢打赌这只是某个地方的一个非常愚蠢的错误,但我就是想不通,我的代码有什么问题..
我有一个网站,在每个(常见的)浏览器和每个常见 os 上都运行良好。 在这个页面上,我有一个搜索栏,它在电脑上也能很好地工作。此栏还有一个 jquery keyup 事件,用于开始搜索。 此事件不会在 ios 上触发(第一个问题)。所以我添加了一个按钮作为解决方法。但这也不适用于 ios。 如果它能正常工作,它应该调用一个 JS 方法,该方法仅将用户重定向到 search.php 页面,同时附加一个名为查询的 GET 变量。我在电脑上加载了页面,错误控制台显示:
TypeError: 不是函数(正在计算 'search()')
它似乎没有加载此方法。不管出于什么原因。所有其他 JS 方法都可以正常工作。只有这个拒绝工作。
搜索栏:
<input placeholder="Search" id="searchbar">
link 看起来像这样:
<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>