提问人:Cybatrex 提问时间:10/31/2019 最后编辑:CommunityCybatrex 更新时间:6/2/2021 访问量:227
解决Odoo 12中移动Safari浏览器上的JS语法错误
Resolving JS Syntax Error on Mobile Safari Browser in Odoo 12
问:
错误:SyntaxError:字符串与预期的模式不匹配。
浏览器:Safari(仅限移动设备) 文件类型: .js 此部分错误: if (a.matches(rulesCache[r].
selector))
{
非常感谢您查看此代码以帮助我确定问题。
var css = [];
var style;
a.matches = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.msMatchesSelector || a.oMatchesSelector;
for (r = 0; r < rulesCache.length; r++) {
if (a.matches(rulesCache[r].selector)) {
style = rulesCache[r].style;
if (style.parentRule) {
var style_obj = {};
var len;
for (k = 0, len = style.length ; k < len ; k++) {
if (style[k].indexOf('animation') !== -1) {
continue;
}
style_obj[style[k]] = style[style[k].replace(/-(.)/g, function (a, b) { return b.toUpperCase(); })];
if (new RegExp(style[k] + '\s*:[^:;]+!important' ).test(style.cssText)) {
style_obj[style[k]] += ' !important';
}
}
rulesCache[r].style = style = style_obj;
}
css.push([rulesCache[r].selector, style]);
}
}
答:
0赞
elinarezv
6/2/2021
#1
我们仍然没有找到错误的根源(在错误 rulesCache[r].selector == “@page”上),但为了避免这种情况,我们放置了一个像这样的 try/catch:
for (r = 0; r < rulesCache.length; r++) {
try {
let matchRule = a.matches(rulesCache[r].selector);
if (matchRule) {
style = rulesCache[r].style;
if (style.parentRule) {
var style_obj = {};
var len;
for (k = 0, len = style.length; k < len; k++) {
if (style[k].indexOf('animation') !== -1) {
continue;
}
style_obj[style[k]] = style[style[k].replace(/-(.)/g, function(a, b) { return b.toUpperCase(); })];
if (new RegExp(style[k] + '\s*:[^:;]+!important').test(style.cssText)) {
style_obj[style[k]] += ' !important';
}
}
rulesCache[r].style = style = style_obj;
}
css.push([rulesCache[r].selector, style]);
}
} catch (e) {
console.warn("Can't process selector: " + rulesCache[r].selector, e);
continue;
}
}
希望这对你有用。 此致敬意
评论