blob: 4cd77250ed6a457506c10cf796275de454d0bc42 [file] [log] [blame]
<!DOCTYPE html>
<meta charset=utf-8>
<title>script beforescriptexecute/afterscriptexecute events</title>
<link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org">
<link rel=help href="https://html.spec.whatwg.org/multipage/#the-script-element">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
var t1 = async_test("'beforescriptexecute'/'afterscriptexecute' events have been fired"),
t2 = async_test("default prevented 'beforescriptexecute' event aborts script execution"),
a = false,
b = false;
var before = function(e) {
b = true;
test(function(){
assert_true(e.isTrusted);
assert_true(e.bubbles);
assert_true(e.cancelable);
}, "'beforescriptexecute' event is trusted, bubbles and is cancelable");
};
var after = function(e) {
a = true;
test(function(){
assert_true(e.isTrusted);
assert_true(e.bubbles);
assert_false(e.cancelable);
}, "'afterscriptexecute' event is trusted, bubbles and isn't cancelable");
};
var prevent_default = function(e) {
t2.step(function() {
e.preventDefault();
assert_true(e.defaultPrevented);
});
};
document.body.onload = function() {
t1.step(function() {
assert_true(a && b);
});
t1.done();
t2.done();
};
</script>
<script onbeforescriptexecute=before(event) onafterscriptexecute=after(event)>
document.querySelector("script");
</script>
<script onbeforescriptexecute=prevent_default(event)>
t2.step(function() {
assert_unreached("script execution not aborted by default prevented 'beforescriptexecute' event");
});
</script>