ExtendedCss icon indicating copy to clipboard operation
ExtendedCss copied to clipboard

Add ability to remove 'text' node

Open AdamWr opened this issue 2 years ago • 2 comments

Related to - https://github.com/AdguardTeam/ExtendedCss/issues/106 Another issue when it could be useful - https://github.com/AdguardTeam/AdguardFilters/issues/146786 https://github.com/AdguardTeam/AdguardFilters/pull/146872


Test page - https://jsfiddle.net/yehz25L4/

Code:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>
  <body>
    <div id='test'> Advertisement <p> Test </p>
      <p> 1234 </p>
      <p> qwerty </p>
    </div>
  </body>
</html>

Rule which should remove text Advertisement:

fiddle.jshell.net#$?#:xpath(//div[contains(@id,"test")]/text()[contains(.,'Advertisement')]) { remove: true; }

ExtendedCss.query which should match element:

ExtendedCss.query(`:xpath(//div[contains(@id,"test")]/text()[contains(.,'Advertisement')])`)

I might be wrong, but I guess that it doesn't work currently, because isHtmlElement https://github.com/AdguardTeam/ExtendedCss/blob/7d2957ffbf92c7f082a861276024e733fd0a8477/src/common/utils/nodes.ts#L87-L89 returns false for text node and probably due to this, element is not matched.

AdamWr avatar Mar 30 '23 06:03 AdamWr

@slavaleleka can we assign it to release v2.1?

ameshkov avatar Mar 30 '23 07:03 ameshkov

yes

slavaleleka avatar Mar 30 '23 08:03 slavaleleka