我在 Azure 存储中存储的 HTML 页面上有以下任意 JavaScript 代码段(据我所知,使用屏幕截图来尝试演示语法是正确的):
页面加载,样式正确,以及您期望的所有其他内容,证明其配置正确,CORS 设置等。但 JavaScript 不运行。相反,我收到此错误:
unified:5 Uncaught SyntaxError: Unexpected token '&'
at br (unified?local=signup&[omitted_for_brevity])
at at (unified?local=signup&[omitted_for_brevity])
at i.fn.init.append (unified?local=signup&[omitted_for_brevity])
at unified?local=signup&[omitted_for_brevity]
由于原始脚本标签上的某种解析或编码错误而导致的额外脚本。
如果我直接从存储容器加载文件,它会加载并且 JavaScript 会毫无问题地触发。这告诉我 HTML 文件没问题,所以:
我已经配置了我在用户流程上可以看到的所有内容:
有人以前见过这个问题,或者可以看到我在配置方面可能做错了什么吗?
编辑: 我大致遵循本指南: https://learn.microsoft.com/en-us/azure/active-directory-b2c/javascript-and-page-layout?pivots=b2c-user-flow
这绝对是解析器错误,html 和 javascript 都很好。您需要跟踪错误以找到哪个函数错误地解析了代码。
在我的办公桌上敲了很多头,并且完全缺乏 Microsoft 支持的帮助/线索后,答案非常简单 - 内联函数。
所以代替:
window.addEventListener('DOMContentLoaded', function () {
alert('hello, world!');
});
我用过
function onLoad() {
alert('hello, world!');
}
onLoad();
这工作得很好(包括不需要在 DOMContentLoaded 上注册)。
如果您使用自断言页面布局版本 2.1.21 或更高版本,或者使用统一登录和注册页面布局版本,则需要在页面的 head 标签中包含脚本2.1.10 或更高版本。请参阅:https://learn.microsoft.com/en-gb/azure/active-directory-b2c/page-layout