diff --git a/lib/extended-css-selector.js b/lib/extended-css-selector.js index e00c0624..020c4e62 100644 --- a/lib/extended-css-selector.js +++ b/lib/extended-css-selector.js @@ -39,8 +39,8 @@ var ExtendedSelector = (function () { // jshint ignore:line // Add :matches-css-*() support StylePropertyMatcher.extendSizzle(Sizzle); - // Add :contains, :has-text support - Sizzle.selectors.pseudos["has-text"] = Sizzle.selectors.pseudos["contains"] = Sizzle.selectors.createPseudo(function( text ) { + // Add :contains, :has-text, :-abp-contains support + Sizzle.selectors.pseudos["contains"] = Sizzle.selectors.pseudos["has-text"] = Sizzle.selectors.pseudos["-abp-contains"] = Sizzle.selectors.createPseudo(function( text ) { if(/^\s*\/.*\/\s*$/.test(text)) { text = text.trim().slice(1, -1).replace(/\\([\\"])/g, '$1'); var regex; @@ -60,6 +60,9 @@ var ExtendedSelector = (function () { // jshint ignore:line } }); + // Add :-abp-has support + Sizzle.selectors.pseudos["-abp-has"] = Sizzle.selectors.pseudos["has"]; + /** * Complex replacement function. * Unescapes quote characters inside of an extended selector. @@ -235,7 +238,7 @@ var ExtendedSelector = (function () { // jshint ignore:line try { // Prepare selector to be compiled with Sizzle // Which means transform [-ext-*=""] attributes to pseudo classes - var re = /\[-(?:abp|ext)-([a-z-_]+)=(["'])((?:(?=(\\?))\4.)*?)\2\]/g; + var re = /\[-ext-([a-z-_]+)=(["'])((?:(?=(\\?))\4.)*?)\2\]/g; var str = selectorText.replace(re, evaluateMatch); // Sizzle's parsing of pseudo class arguments is buggy on certain circumstances diff --git a/test/extended-css/test-extended-css.html b/test/extended-css/test-extended-css.html index e7f6d034..76a885cf 100644 --- a/test/extended-css/test-extended-css.html +++ b/test/extended-css/test-extended-css.html @@ -23,8 +23,6 @@ #case8>div[-ext-has=":matches-css-before(content: *block me*)"] { display: none; } #case9>div[-ext-contains="Another text"] { font-size: 16px; } #case10>div[-ext-contains="Block this"] { display: none; } - #case11>div[-abp-has=".banner"] { display:none !important; } - #case12 div[-abp-has=".banner:has-text(Banner)"] { display: none; }