【问题标题】:Edge not loading some javascriptEdge 没有加载一些 JavaScript
【发布时间】:2016-08-04 17:19:35
【问题描述】:

我有一个网站在 Chrome 和 FF 上运行良好,但在 Edge 上失败。当我查看控制台日志(在 Edge 上)时,它告诉我某些 javascript 函数未定义,如果我打开默认 Edge 开发人员工具的调试器,我可以看到我的一个 js 文件尚未加载,但其他文件已加载(请参阅以下)。控制台登录 FF 和 chrome 报告没有错误或警告。页眉设置为<!DOCTYPE html>,js是这样包含的...

<script src="js/generalUtils.js" type="text/javascript"></script>
<script src="js/dlmUtils.js" type="text/javascript"></script>
<script src="js/md5.js" type="text/javascript"></script>

generalUtils.js 和 login.js 加载,但 dlmUtils.js 没有加载。 (nb还有一堆从ajax.googleapis.com成功加载的'remote'js。)

dlmUtils.js 中的 javascript 在 Chrome 和 FF 中运行良好,并且不会在控制台上报告任何错误或警告。

想法?

乔布斯

【问题讨论】:

  • 您在网络标签中看到了什么?
  • 好点...不幸的是那里没有线索。它报告 dlmUtils 与所有其他工作的本地脚本完全相同,在这种情况下,加载时间为 46.74 毫秒
  • 如果您查看页面的源代码,您指向文件 dlmUtils.js 的链接是否正确?能打开吗?
  • 这很奇怪,&lt;script src='js\dlmUtils.js' 出现在调试器窗口中并确实打开了,但在左侧的“文件资源管理器”类型窗口中列出了所有脚本除了 dlmUtils。 js !!!!
  • 更新:我想我已经走上了正轨——删除了 dlmUtils.js 的所有内容,问题就消失了。一次添加一点内容,它似乎与一个(相当大的)功能有关 - 当我查明真正的罪魁祸首时,我会报告。

标签: javascript html


【解决方案1】:

奇怪 - 我发现实际上脚本 正在 被加载,但很快就被转储了。事实证明,Edge 不喜欢 Javascript 中的默认参数。 - 我想我错过了某处的标准备忘录 :-)

function showJobsheet(id=0) {

导致 Edge 转储脚本,所以现在...

function showJobsheet(id) {
    id = ((typeof id !== 'undefined') ? id : 0);

这是我必须做出的唯一改变,现在一切正常。

感谢所有提供帮助的人...

【讨论】:

  • 默认参数仅在启用了实验性 JavaScript 功能的 Microsoft Edge 中受支持(about:flags)。 msdn.microsoft.com/en-us/library/yh6c50h7(v=vs.94).aspx
  • 我在使用 JavaScript 合并运算符时发生了同样的事情,比如 let countryDropDownEnabled = $(this).data("iscountryenabled") ?? “真的”;我改为常规的 if...then...else 替代方案并且工作正常。
【解决方案2】:

我遇到了同样的问题。正如GreybeardTheUnready所说,通过打开Edge开发工具并显示JS文件应该所在的目录,我能够将其固定为Edge“转储”JS文件。刷新页面时,它会暂时显示在该目录中,然后消失。

即使启用了实验性 JavaScript 功能,由于我使用的是 JavaScript 的可选链接 (?.),仍会发生这种情况。删除了这些问号,JS 文件现在仍然存在。不幸的是,这意味着我必须让我的代码更冗长......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多