Javascript 输入搜索在JS中被阻止
我使用的是IE11,我有一个搜索框输入,如下所示Javascript 输入搜索在JS中被阻止,javascript,html,angularjs,browser,internet-explorer-11,Javascript,Html,Angularjs,Browser,Internet Explorer 11,我使用的是IE11,我有一个搜索框输入,如下所示 <input type="text" data-ng-model="ctrl.searchText" data-ng-keyup="ctrl.globalSearch()"> 这里filter.ddletems总共有2659个 流量 当我搜索“经理”时,我会得到搜索结果,然后 当我清除manager并键入试图键入的内容时,它被锁定,能够输入至少一个单词,然后浏览器显示一个弹出窗口“由于长时间运行脚本而没有响应” 任何人都可以
<input type="text" data-ng-model="ctrl.searchText" data-ng-keyup="ctrl.globalSearch()">
这里filter.ddletems总共有2659个
流量
当我搜索“经理”时,我会得到搜索结果,然后
当我清除manager并键入试图键入的内容时,它被锁定,能够输入至少一个单词,然后浏览器显示一个弹出窗口“由于长时间运行脚本而没有响应”
任何人都可以提供帮助。谢谢。当您在某个点删除时,您正在搜索空字符串,这可能就是它挂起的原因。如果searchText中的值为空stringHi@FrancescoDiStefano,则尝试不搜索,如果(_globalSearchConfig.searchText.length>2),则为长度检查设置条件{是的,但是在您的检查和searchTextOhk发生的任何事情之间有2秒的超时。在这种情况下,如果searchText长度小于2,我将取消超时。您是否使用F12开发工具检查IE 11上的控制台中是否有任何错误?您也可以尝试使用F12开发工具添加断点来调试代码。这个问题是否仅限于IE上的ppen或其他浏览器上的ppen?此外,您能否提供一个最小的示例来重现该问题?仅运行上述代码时,似乎什么都没有发生。
function globalSearch() {
if (_globalSearchConfig.searchText.length > 2) {
$timeout.cancel(_globalSearchConfig.searchCanceller);
_globalSearchConfig.searchCanceller = $timeout(_startGlobalSearch, 2000);
}
}
function _startGlobalSearch() {
_globalSearchConfig.results = []; //Clearing previous search results
_globalSearchConfig.noResultsToDisplay = false;
angular.forEach(_filters, function (filter) {
angular.forEach(filter.ddlItems, function (ddlItem) {
if (ddlItem[filter.propertyOfListItem].toUpperCase().indexOf(_globalSearchConfig.searchText.toUpperCase()) > -1) {
var result = {};
angular.copy(ddlItem, result);
_globalSearchConfig.results.push(new GlobalSearchResult(result, filter));
}
});
});
if (_globalSearchConfig.results.length === 0) {
_globalSearchConfig.noResultsToDisplay = true;
}
}