-
Notifications
You must be signed in to change notification settings - Fork 203
Hooks
HtmlSanitizer provides the following events.
-
PostProcessNode (PostProcessNodeEventArgs)
-
RemovingTag (RemovingTagEventArgs)
-
RemovingAttribute (RemovingAttributeEventArgs)
-
RemovingStyle (RemovingStyleEventArgs)
-
RemovingAtRule (RemovingAtRuleEventArgs)
-
RemovingComment (RemovingCommentEventArgs)
-
RemovingCssClass (RemovingCssClassEventArgs)
-
FilterUrl (FilterUrlEventArgs)
Each of these events can be subscribed to, using either delegate methods or lambda expressions, like so:
var sanitizer = new HtmlSanitizer();
sanitizer.RemovingTag += (sender, e) => e.Cancel = e.Tag.NodeName == "BLINK";
Each of the Removing...
events can be cancelled, as their event object derives from System.ComponentModel.CancelEventArgs
. sender
, in the
above example, is the instance of HtmlSanitizer which raised this event, e
, in the above example.
You can also use these events to override the default behavior. For instance, let's assume you want to throw an exception if a specific tag is present in the input string:
var sanitizer = new HtmlSanitizer();
sanitizer.RemovingTag += (sender, e) =>
{
if(e.Tag.NodeName.Equals("BLINK", StringComparison.OrdinalIgnoreCase))
{
throw new ItsNot1999Exception("blink");
}
}