解决Odoo 12中Mobile Safari浏览器上的JS语法错误



错误:SyntaxError:字符串与预期模式不匹配

浏览器:Safari(仅限移动设备(
文件类型:.js
此部分错误:1if(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]);
}
}

我们仍然没有找到错误的来源(在错误规则Cache[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;
}
}

希望这对你有用。向致以最良好的问候

最新更新