Javascript只在ios上抛出typeerror

时间:2015-03-01 16:49:50

标签: javascript php ios dom

我有一个奇怪的问题,我敢打赌这只是一个非常愚蠢的错误,但我无法弄清楚,我的代码有什么问题......

我有一个网站,可以在每个公共操作系统上的每个(常见)浏览器上完美运行。 在这个页面上我有一个搜索栏,它在计算机上也可以正常工作。此栏还有一个jquery keyup事件,以开始搜索。 此事件不会触发ios(第一个问题)。所以我添加了一个按钮作为解决方法。但这也不适用于ios。 如果它能够正常工作,它应该调用一个JS-Method,它只会将用户重定向到search.php页面,同时附加一个名为query的GET-Variable。我在PC上加载了页面,错误控制台说:

TypeError:不是一个函数(评估' search()')

它似乎不会加载此方法。无论出于何种原因所有其他JS方法都可以正常工作。只是这个人拒绝工作。

搜索栏:

<input placeholder="Search" id="searchbar">

链接如下所示:

<a href="#" id="searchbutton" onclick="search();">start search</a>

JS-Method看起来像这样:

var text = document.getElementById('searchbar').value;
window.location.href="./search.php?q="+text;

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

似乎全局变量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>