Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 1 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /html/webappapis/dynamic-markup-insertion/document-write/write-active-document.html - WPT Dashboard Interop Dashboard
<!doctype html>
<title>document.write only writes to active documents</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body><div id="log"></div></body>
<script>
async_test(function(t) {
var child = document.createElement("iframe");
child.src = "empty.html?1";
child.onload = t.step_func(function() {
var child1 = child.contentDocument;
var link = child1.createElement("a");
link.href = "data:text/html,Clicked.";
link.innerText = "Link.";
child1.body.appendChild(link);
var grandchild = child1.createElement("iframe");
grandchild.src = "empty.html?2";
grandchild.onload = t.step_func(function() {
var grandchild1 = grandchild.contentDocument;
child.onload = t.step_func(function() {
// This is a write to an inactive document
child1.write('WRITE HAPPENED');
assert_equals(child1.body.lastChild.tagName, "IFRAME");
// This is a write to an active but not fully active document
grandchild1.write('WRITE HAPPENED');
assert_equals(grandchild1.body.innerHTML, "WRITE HAPPENED");
t.done();
});
link.click();
});
child1.body.appendChild(grandchild);
});
document.body.appendChild(child);
});
</script>