javascript - 简单的 jQuery 脚本在 Chrome 中工作,在 IE 中损坏

标签 javascript jquery

我有一个简单的 jQuery,它会在 3 秒后用随机字符串填充字段。

这是一个演示:https://jsfiddle.net/5sLrtg5t/

如果您在 IE 11 中加载此演示,它不会填充该字段。这是为什么?

function makeid()
{
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    for( var i=0; i < 8; i++ )
        text += possible.charAt(Math.floor(Math.random() * possible.length));
    return text;
}

var urlParams = new URLSearchParams(window.location.search);
var keys = urlParams.keys();
for (key of keys) {}
setTimeout(function() {
  if(document.location.search.length) {
  } else {
    $('#address').val(makeid());
  }
}, 3000);

最佳答案

您使用的 for ... of 不受 IE 支持,请尝试使用 for ... in (如果您想要类似的行为,请使用 Object.hasOwnProperty()):

function makeid()
{
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    for( var i=0; i < 8; i++ )
        text += possible.charAt(Math.floor(Math.random() * possible.length));
    return text;
}

var urlParams = new URLSearchParams(window.location.search);
var keys = urlParams.keys();
for (key in keys) {}
setTimeout(function() {
  if(document.location.search.length) {
  } else {
    $('#address').val(makeid());
  }
}, 3000);

老实说,第二个 for 循环的点让我感到困惑,你也许可以完全摆脱它。

编辑:正如 @charlietfl URL API 的评论中所提到的,整体上也不支持。

How can I get query string values in JavaScript? 有一个很好的函数,我相信它应该做一些类似于你想要做的事情:

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

另外,还有很多库可以在不受支持的浏览器上使用 URL API,WebReflection/url-search-params 只是快速 Google 搜索中显示的少数库之一。

关于javascript - 简单的 jQuery 脚本在 Chrome 中工作,在 IE 中损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44285814/

相关文章:

javascript - 哪个 JAvaScript 库定义了 JavaScript 日期对象格式函数?

javascript - 隐藏();不会隐藏 map 图像

javascript - Facebook评论滚动

javascript - 已设置不透明样式的 DIV 上的 Jquery fadeIn()

javascript - 如何换行文本以适合 DIV 长度

javascript - 如何在灯箱图像上设置外部链接?

javascript - Bootstrap Datetimepicker 从星期一开始

javascript - 使用三个js创建环面图

php - 如何在 if 条件下禁用按钮

javascript - 如何检查两个圆形div是否重叠