650 lines
9.2 KiB
Text
650 lines
9.2 KiB
Text
#data
|
|
test
|
|
#document
|
|
| "test"
|
|
|
|
#data
|
|
<b>bla</b>
|
|
#document
|
|
| <b>
|
|
| "bla"
|
|
|
|
#data
|
|
<a<embla
|
|
#errors
|
|
Parse error
|
|
#document
|
|
|
|
#data
|
|
<html><head></head><body>test</body></html>
|
|
#document
|
|
| "test"
|
|
|
|
#data
|
|
<div>test
|
|
#document
|
|
| <div>
|
|
| "test"
|
|
|
|
#data
|
|
<script>alert('i am a test')</script>
|
|
#document
|
|
|
|
#data
|
|
hello<script>alert('i am a test')</script>
|
|
#document
|
|
| "hello"
|
|
|
|
#data
|
|
<div><b>hello<script>alert('i am a test')</script>
|
|
#document
|
|
| <div>
|
|
| <b>
|
|
| "hello"
|
|
|
|
#data
|
|
<p onclick='a= 123'>Click.</p>
|
|
#document
|
|
| <p>
|
|
| "Click."
|
|
|
|
#data
|
|
<plaintext><p>text</p>
|
|
#config
|
|
{}
|
|
#document
|
|
| <plaintext>
|
|
| "<p>text</p>"
|
|
|
|
#data
|
|
<xmp>TEXT</xmp>
|
|
#config
|
|
{}
|
|
#document
|
|
| <xmp>
|
|
| "TEXT"
|
|
|
|
#data
|
|
test
|
|
#config
|
|
{ "test": 123 }
|
|
#document
|
|
| "test"
|
|
|
|
#data
|
|
test
|
|
#config
|
|
{ "removeElements": [] }
|
|
#document
|
|
| "test"
|
|
|
|
#data
|
|
<div>test</div><p>bla
|
|
#config
|
|
{ "removeElements": ["div"] }
|
|
#document
|
|
| <p>
|
|
| "bla"
|
|
|
|
#data
|
|
<custom-element>test1</custom-element>bla
|
|
#document
|
|
| "bla"
|
|
|
|
#data
|
|
<custom-element>test3</custom-element>bla
|
|
#config
|
|
{ "elements": ["custom-element"] }
|
|
#document
|
|
| <custom-element>
|
|
| "test3"
|
|
| "bla"
|
|
|
|
#data
|
|
<custom-element>test5</custom-element>bla
|
|
#config
|
|
{ "removeElements": ["custom-element"] }
|
|
#document
|
|
| "bla"
|
|
|
|
#data
|
|
<script>alert('i am a test')</script>
|
|
#config
|
|
{ "removeElements": ["script"] }
|
|
#document
|
|
|
|
#data
|
|
<div>balabala<i>test</i></div><test-element>t</test-element>
|
|
#config
|
|
{ "removeElements": ["test-element", "i"] }
|
|
#document
|
|
| <div>
|
|
| "balabala"
|
|
|
|
#data
|
|
<div>balabala<i>i</i><p>t</p></div>
|
|
#config
|
|
{ "removeElements": ["dl", "p"] }
|
|
#document
|
|
| <div>
|
|
| "balabala"
|
|
| <i>
|
|
| "i"
|
|
|
|
#data
|
|
<div>test<div>p</div>tt<p>div</p></div>
|
|
#config
|
|
{ "elements": ["p"], "replaceWithChildrenElements": ["div"] }
|
|
#document
|
|
| "test"
|
|
| "p"
|
|
| "tt"
|
|
| <p>
|
|
| "div"
|
|
|
|
#data
|
|
<div>test</div><p>bla
|
|
#config
|
|
{ "removeElements": ["div"], "elements": ["div"] }
|
|
#error
|
|
TypeError
|
|
|
|
#data
|
|
<p id='test'>Click.</p>
|
|
#config
|
|
{ "removeAttributes": [] }
|
|
#document
|
|
| <p>
|
|
| id="test"
|
|
| "Click."
|
|
|
|
#data
|
|
<p id='test'>Click.</p>
|
|
#config
|
|
{ "removeAttributes": ["id"] }
|
|
#document
|
|
| <p>
|
|
| "Click."
|
|
|
|
#data
|
|
<p id='test'>Click.</p>
|
|
#config
|
|
{ "elements": ["p"], "removeAttributes": ["id"] }
|
|
#document
|
|
| <p>
|
|
| "Click."
|
|
|
|
#data
|
|
<p id='p' data-attribute-with-dashes='123'>Click.</p><script>document.getElementById('p').dataset.attributeWithDashes=123;</script>
|
|
#config
|
|
{ "elements": ["p"], "removeAttributes": ["data-attribute-with-dashes"] }
|
|
#document
|
|
| <p>
|
|
| id="p"
|
|
| "Click."
|
|
|
|
#data
|
|
<p id='p' title='p'>P</p><div id='div' title='div'>DIV</div>
|
|
#config
|
|
{ "elements": [
|
|
{ "name": "p", "attributes": ["title"] },
|
|
{ "name": "div", "attributes": ["id"] }
|
|
]}
|
|
#document
|
|
| <p>
|
|
| title="p"
|
|
| "P"
|
|
| <div>
|
|
| id="div"
|
|
| "DIV"
|
|
|
|
#data
|
|
<p id='p' title='p'>P</p><div id='div' title='div'>DIV</div>
|
|
#config
|
|
{ "elements":
|
|
[
|
|
{ "name": "p", "removeAttributes": ["title"] },
|
|
{ "name": "div", "removeAttributes": ["id"] }
|
|
]
|
|
}
|
|
#document
|
|
| <p>
|
|
| id="p"
|
|
| "P"
|
|
| <div>
|
|
| title="div"
|
|
| "DIV"
|
|
|
|
#data
|
|
<div id='div' title='div'>DIV</div>
|
|
#config
|
|
{ "elements": [{ "name": "div", "attributes": ["id"], "removeAttributes": ["id"] }]}
|
|
#error
|
|
TypeError
|
|
|
|
#data
|
|
<div id='div' title='div'>DIV</div>
|
|
#config
|
|
{ "elements": [{ "name": "div", "attributes": ["id", "title"] }],
|
|
"attributes": []}
|
|
#document
|
|
| <div>
|
|
| id="div"
|
|
| title="div"
|
|
| "DIV"
|
|
|
|
#data
|
|
<div id='div' title='div'>DIV</div>
|
|
#config
|
|
{
|
|
"elements": [{ "name": "div", "attributes": ["id", "title"] }],
|
|
"removeAttributes": ["id", "title"]
|
|
}
|
|
#document
|
|
| <div>
|
|
| "DIV"
|
|
|
|
#data
|
|
<div id='div' title='div'>DIV</div>
|
|
#config
|
|
{
|
|
"elements": [{ "name": "div", "removeAttributes": ["id", "title"] }],
|
|
"attributes": ["id", "title"]
|
|
}
|
|
#document
|
|
| <div>
|
|
| id="div"
|
|
| title="div"
|
|
| "DIV"
|
|
|
|
#data
|
|
<p id='test' onclick='a= 123'>Click.</p>
|
|
#config
|
|
{ "attributes": ["id"] }
|
|
#document
|
|
| <p>
|
|
| id="test"
|
|
| "Click."
|
|
|
|
#data
|
|
<p style='color: black'>Click.</p>
|
|
#config
|
|
{ "removeAttributes": ["style"], "attributes": ["style"] }
|
|
#error
|
|
TypeError
|
|
|
|
#data
|
|
<template><script>test</script><div>hello</div></template>
|
|
#config
|
|
{ "elements": ["template", "div"] }
|
|
#document
|
|
| <template>
|
|
| content
|
|
| <div>
|
|
| "hello"
|
|
|
|
#data
|
|
<a href='javascript:evil.com'>Click.</a>
|
|
#document
|
|
| <a>
|
|
| "Click."
|
|
|
|
#data
|
|
<a href=' javascript:evil.com'>Click.</a>
|
|
#document
|
|
| <a>
|
|
| "Click."
|
|
|
|
#data
|
|
<a href='http:evil.com'>Click.</a>
|
|
#document
|
|
| <a>
|
|
| href="http:evil.com"
|
|
| "Click."
|
|
|
|
#data
|
|
<area href='javascript:evil.com'>
|
|
#config
|
|
{}
|
|
#document
|
|
| <area>
|
|
|
|
#data
|
|
<area href=' javascript:evil.com'>
|
|
#config
|
|
{}
|
|
#document
|
|
| <area>
|
|
|
|
#data
|
|
<area href='http:evil.com'>
|
|
#config
|
|
{}
|
|
#document
|
|
| <area>
|
|
| href="http:evil.com"
|
|
|
|
#data
|
|
<form action='javascript:evil.com'>Click.</form>
|
|
#config
|
|
{}
|
|
#document
|
|
| <form>
|
|
| "Click."
|
|
|
|
#data
|
|
<form action=' javascript:evil.com'>Click.</form>
|
|
#config
|
|
{}
|
|
#document
|
|
| <form>
|
|
| "Click."
|
|
|
|
#data
|
|
<form action='http:evil.com'>Click.</form>
|
|
#config
|
|
{}
|
|
#document
|
|
| <form>
|
|
| action="http:evil.com"
|
|
| "Click."
|
|
|
|
#data
|
|
<input formaction='javascript:evil.com'>
|
|
#config
|
|
{}
|
|
#document
|
|
| <input>
|
|
|
|
#data
|
|
<input formaction=' javascript:evil.com'>
|
|
#config
|
|
{}
|
|
#document
|
|
| <input>
|
|
|
|
#data
|
|
<input formaction='http:evil.com'>
|
|
#config
|
|
{}
|
|
#document
|
|
| <input>
|
|
| formaction="http:evil.com"
|
|
|
|
#data
|
|
<button formaction='javascript:evil.com'>Click.</button>
|
|
#config
|
|
{}
|
|
#document
|
|
| <button>
|
|
| "Click."
|
|
|
|
#data
|
|
<button formaction=' javascript:evil.com'>Click.</button>
|
|
#config
|
|
{}
|
|
#document
|
|
| <button>
|
|
| "Click."
|
|
|
|
#data
|
|
<button formaction='http:evil.com'>Click.</button>
|
|
#config
|
|
{}
|
|
#document
|
|
| <button>
|
|
| formaction="http:evil.com"
|
|
| "Click."
|
|
|
|
#data
|
|
<p>Some text</p></body><!-- 1 --></html><!-- 2 --><p>Some more text</p>
|
|
#document
|
|
| <p>
|
|
| "Some text"
|
|
| <p>
|
|
| "Some more text"
|
|
|
|
#data
|
|
<p>Some text</p><!-- 1 --><!-- 2 --><p>Some more text</p>
|
|
#document
|
|
| <p>
|
|
| "Some text"
|
|
| <p>
|
|
| "Some more text"
|
|
|
|
#data
|
|
<p>Some text</p><!-- 1 --><!-- 2 --><p>Some more text</p>
|
|
#config
|
|
{ "comments": true }
|
|
#document
|
|
| <p>
|
|
| "Some text"
|
|
| <!-- 1 -->
|
|
| <!-- 2 -->
|
|
| <p>
|
|
| "Some more text"
|
|
|
|
#data
|
|
<p>Some text</p><!-- 1 --><!-- 2 --><p>Some more text</p>
|
|
#config
|
|
{ "comments": false }
|
|
#document
|
|
| <p>
|
|
| "Some text"
|
|
| <p>
|
|
| "Some more text"
|
|
|
|
#data
|
|
<p>comment<!-- hello -->in<!-- </p> -->text</p>
|
|
#document
|
|
| <p>
|
|
| "comment"
|
|
| "in"
|
|
| "text"
|
|
|
|
#data
|
|
<p>comment<!-- hello -->in<!-- </p> -->text</p>
|
|
#config
|
|
{ "comments": true }
|
|
#document
|
|
| <p>
|
|
| "comment"
|
|
| <!-- hello -->
|
|
| "in"
|
|
| <!-- </p> -->
|
|
| "text"
|
|
|
|
#data
|
|
<p>comment<!-- hello -->in<!-- </p> -->text</p>
|
|
#config
|
|
{ "comments": false }
|
|
#document
|
|
| <p>
|
|
| "comment"
|
|
| "in"
|
|
| "text"
|
|
|
|
#data
|
|
<svg></svg>
|
|
#config
|
|
{ "elements": ["svg"] }
|
|
#document
|
|
|
|
#data
|
|
<div><svg></svg></div>
|
|
#config
|
|
{ "elements": ["div", "svg"] }
|
|
#document
|
|
| <div>
|
|
|
|
#data
|
|
<div>balabala<dl>test</dl></div>
|
|
#config
|
|
{ "removeElements": ["I", "DL"] }
|
|
#document
|
|
| <div>
|
|
| "balabala"
|
|
| <dl>
|
|
| "test"
|
|
|
|
#data
|
|
<div>balabala<dl>test</dl></div>
|
|
#config
|
|
{ "removeElements": ["i", "dl"] }
|
|
#document
|
|
| <div>
|
|
| "balabala"
|
|
|
|
#data
|
|
<DIV>balabala<DL>test</DL></DIV>
|
|
#config
|
|
{ "removeElements": ["i", "dl"] }
|
|
#document
|
|
| <div>
|
|
| "balabala"
|
|
|
|
#data
|
|
<p id="test">Click.</p>
|
|
#config
|
|
{ "removeAttributes": ["ID"] }
|
|
#document
|
|
| <p>
|
|
| id="test"
|
|
| "Click."
|
|
|
|
#data
|
|
<p ID="test">Click.</p>
|
|
#config
|
|
{ "removeAttributes": ["ID"] }
|
|
#document
|
|
| <p>
|
|
| id="test"
|
|
| "Click."
|
|
|
|
#data
|
|
<p ID="test">Click.</p>
|
|
#config
|
|
{ "removeAttributes": ["id"] }
|
|
#document
|
|
| <p>
|
|
| "Click."
|
|
|
|
#data
|
|
<div>balabala<i>test</i></div><test>t</test><custom-element>custom-element</custom-element>
|
|
#config
|
|
{ "removeElements": [123, "test", "i", "custom-element"] }
|
|
#document
|
|
| <div>
|
|
| "balabala"
|
|
|
|
#data
|
|
<div>balabala<i>test</i></div><test>t</test><custom-element>custom-element</custom-element>
|
|
#config
|
|
{ "replaceWithChildrenElements": [123, "test", "i", "custom-element"],
|
|
"elements": ["div"]}
|
|
#document
|
|
| <div>
|
|
| "balabala"
|
|
| "test"
|
|
| "t"
|
|
| "custom-element"
|
|
|
|
#data
|
|
<div>test<div>p</div>tt<p>div</p></div><test>test</test>
|
|
#config
|
|
{ "elements": ["p", "test"], "replaceWithChildrenElements": ["div"] }
|
|
#document
|
|
| "test"
|
|
| "p"
|
|
| "tt"
|
|
| <p>
|
|
| "div"
|
|
| <test>
|
|
| "test"
|
|
|
|
#data
|
|
test<div>p</div>tt<p>div</p><test>test</test>
|
|
#config
|
|
{ "elements": ["p", "test"], "replaceWithChildrenElements": ["div"] }
|
|
#document
|
|
| "test"
|
|
| "p"
|
|
| "tt"
|
|
| <p>
|
|
| "div"
|
|
| <test>
|
|
| "test"
|
|
|
|
#data
|
|
<div hello='1' world='2'><b hello='3' world='4'>
|
|
#config
|
|
{ "elements": ["div", "b"], "attributes": ["hello", "world"] }
|
|
#document
|
|
| <div>
|
|
| hello="1"
|
|
| world="2"
|
|
| <b>
|
|
| hello="3"
|
|
| world="4"
|
|
|
|
#data
|
|
<div hello='1' world='2'><b hello='3' world='4'>
|
|
#config
|
|
{ "elements": ["div", "b"], "removeAttributes": ["hello", "world"] }
|
|
#document
|
|
| <div>
|
|
| <b>
|
|
|
|
#data
|
|
<table><div><td>
|
|
#config
|
|
{ "replaceWithChildrenElements": ["table"] }
|
|
#document
|
|
| <div>
|
|
| <tbody>
|
|
| <tr>
|
|
| <td>
|
|
|
|
#data
|
|
<template><div>Hello</div></template>
|
|
#config
|
|
{}
|
|
#document
|
|
| <template>
|
|
| content
|
|
| <div>
|
|
| "Hello"
|
|
|
|
#data
|
|
<template><div>Hello</div></template>
|
|
#config
|
|
{ "elements": ["div"]}
|
|
#document
|
|
|
|
#data
|
|
<template><div>Hello</div></template>
|
|
#config
|
|
{ "elements": ["template"]}
|
|
#document
|
|
| <template>
|
|
| content
|
|
|
|
#data
|
|
<template><div>Hello</div></template>
|
|
#config
|
|
{ "elements": ["div", "template"]}
|
|
#document
|
|
| <template>
|
|
| content
|
|
| <div>
|
|
| "Hello"
|
|
|
|
#data
|
|
<template><div>Hello</div></template>
|
|
#config
|
|
{ "elements": ["template"], "replaceWithChildrenElements": ["div"]}
|
|
#document
|
|
| <template>
|
|
| content
|
|
| "Hello"
|
|
|