【发布时间】:2021-11-13 08:19:20
【问题描述】:
我已使用此插件在我建立的 Divi 网站中创建弹出窗口: https://wordpress.org/plugins/popups-for-divi/
由于 padStart() 函数,弹出窗口没有在 IE 中打开,我找到了使用以下代码替换 padStart() 函数的替代方法:
if (!String.prototype.padStart) {
String.prototype.padStart = function padStart(targetLength, padString) {
targetLength = targetLength >> 0; //truncate if number or convert non-number to 0;
padString = String((typeof padString !== 'undefined' ? padString : ' '));
if (this.length > targetLength) {
return String(this);
} else {
targetLength = targetLength - this.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed
}
return padString.slice(0, targetLength) + String(this);
}
};
} <
/script>
现在的问题是,弹出窗口在主页上加载正常,但在其他页面上却没有,我收到此错误:
“承诺”未定义
谁能帮我解决这个问题?这是要检查的网站链接: https://site2.stagging.tk/
谢谢
【问题讨论】:
-
等等,你的意思是有人还在为 IE 编码?
-
不完全是@jfriend00。虽然我遇到了一个需要在 IE 上工作的客户。因为他还在用IE。
-
嗯,IE 没有对 Promise 的原生支持(它真的非常非常老了)。对于
Promise,您还必须使用polyfill。尝试将您从未打算这样做的东西移植到 IE 是一场重大的失败战斗。试想一下所涉及的测试,以了解一切确实有效。
标签: popup internet-explorer-11 es6-promise polyfills divi