2 years ago

#30530

test-img

Chewie The Chorkie

querySelectorAll working find in JSFiddle, but receive "The string did not match the expected pattern" as injected code

I have a JSFiddle that matches any element that has the "background-color" style attribute. When I use it as an injected script inside a Safari Extension on Wikipedia, I get the error "The string did not match the expected pattern", and I cannot continue the script beyond this point. Why would this happen?

var possibilities = ['[style*="background-color"],[style*="background-color"]'],
    searchFor = /\bbackground-color/,
    cssProp = 'background-color',
    styles = document.styleSheets,
    i, j, l, rules, rule, elem, res = [];

for (i=0; i<styles.length; i++) {
    rules = styles[i].cssRules;
    l = rules.length;
    for (j=0; j<l; j++) {
        rule = rules[j];
        if (searchFor.test(rule.cssText)) {
            possibilities.push(rule.selectorText);
        }
    }
}
possibilities = possibilities.join(',');
possibilities = document.querySelectorAll(possibilities); // "The string did not match the expected pattern" ERROR
l = possibilities.length;
for (i=0; i<l; i++) {
    elem = possibilities[i];
    res.push(elem);
}
alert(res.length + ' matches!');

JSFiddle

javascript

safari

browser-extension

selectors-api

0 Answers

Your Answer

Accepted video resources