This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The SecurityPolicyViolationEvent interface inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated.
Constructor
SecurityPolicyViolationEvent()- Creates a new
SecurityPolicyViolationEventobject instance.
Properties
SecurityPolicyViolationEvent.blockedURIRead only- A
USVStringrepresenting the URI of the resource that was blocked because it violates a policy. SecurityPolicyViolationEvent.columnNumberRead only- The column number in the document or worker at which the violation occurred.
SecurityPolicyViolationEvent.dispositionRead only- Indicates how the violated policy is configured to be treated by the user agent. This will be
"enforce"or"report". SecurityPolicyViolationEvent.documentURIRead only- A
USVStringrepresenting the URI of the document or worker in which the violation was found. SecurityPolicyViolationEvent.effectiveDirectiveRead only- A
DOMStringrepresenting the directive whose enforcement uncovered the violation. SecurityPolicyViolationEvent.lineNumberRead only- The line number in the document or worker at which the violation occurred.
SecurityPolicyViolationEvent.originalPolicyRead only- A
DOMStringcontaining the policy whose enforcement uncovered the violation. SecurityPolicyViolationEvent.referrerRead only- A
USVStringrepresenting the referrer of the resources whose policy was violated. This will be a URL ornull. SecurityPolicyViolationEvent.sampleRead only- A
DOMStringrepresenting a sample of the resource that caused the violation, usually the first 40 characters. This will only be populated if the resource is an inline script, event handler, or style — external resources causing a violation will not generate a sample. SecurityPolicyViolationEvent.sourceFileRead only- A
USVStringrepresenting the URI of the document or worker in which the violation was found. SecurityPolicyViolationEvent.statusCodeRead only- A number representing the HTTP status code of the document or worker in which the violation occurred.
SecurityPolicyViolationEvent.violatedDirectiveRead only- A
DOMStringrepresenting the directive whose enforcement uncovered the violation.
Examples
document.addEventListener("securitypolicyviolation", (e) => {
console.log(e.blockedURI);
console.log(e.violatedDirective);
console.log(e.originalPolicy);
});
Specifications
| Specification | Status | Comment |
|---|---|---|
| Content Security Policy Level 2 The definition of 'SecurityPolicyViolationEvent' in that specification. |
Recommendation | Initial definition. |
| Content Security Policy Level 3 The definition of 'SecurityPolicyViolationEvent' in that specification. |
Working Draft |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
SecurityPolicyViolationEvent | Chrome Full support Yes | Edge Full support ≤18 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
SecurityPolicyViolationEvent() constructor | Chrome Full support Yes | Edge Full support ≤18 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
blockedURI | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
columnNumber | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
disposition | Chrome Full support Yes | Edge Full support ≤18 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
documentURI | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
effectiveDirective | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
lineNumber | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
originalPolicy | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
referrer | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
sample | Chrome Full support 59 | Edge Full support ≤18 | Firefox
Full support
63
| IE No support No | Opera Full support 46 | Safari Full support Yes | WebView Android Full support 59 | Chrome Android Full support 59 | Firefox Android
Full support
63
| Opera Android Full support 43 | Safari iOS Full support Yes | Samsung Internet Android Full support 7.0 |
sourceFile | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
statusCode | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
violatedDirective | Chrome Full support Yes | Edge Full support 15 | Firefox
Full support
63
| IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android
Full support
63
| Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
| Available in workers | Chrome Full support 56 | Edge Full support ≤18 | Firefox
Full support
63
| IE No support No | Opera Full support 43 | Safari Full support Yes | WebView Android Full support 56 | Chrome Android Full support 56 | Firefox Android
Full support
63
| Opera Android Full support 43 | Safari iOS Full support Yes | Samsung Internet Android Full support 6.0 |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- User must explicitly enable this feature.
- User must explicitly enable this feature.
