Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 2 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /html/editing/editing-0/contenteditable/user-interaction-editing-contenteditable.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<html>
<head>
<title>Editing: contentEditable attribute test</title>
<link rel="author" title="Baidu" href="mailto: guopengcheng@baidu.com" />
<link
rel="help"
/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
</head>
<body>
<script>
function testContentEditable(variationFunc, title, expectIsContentEditable, expectContentEditable) {
test(() => {
const div = document.createElement("div");
variationFunc(div);
assert_equals(div.isContentEditable, expectIsContentEditable, 'isContentEditable');
assert_equals(div.contentEditable, expectContentEditable, 'contentEditable');
}, title);
}
testContentEditable(el => {
}, "no contenteditable attribute", false, "inherit");
testContentEditable(el => {
el.setAttribute("contenteditable", "");
}, "empty contentEditable attribute", true, "true");
testContentEditable(el => {
el.contentEditable = "true";
}, 'set contentEditable = "true"', true, "true");
testContentEditable(el => {
el.contentEditable = "false";
}, 'set contentEditable = "false"', false, "false");
testContentEditable(el => {
const parent = document.createElement("div");
parent.appendChild(el);
parent.contentEditable = "true";
}, 'set parent element contentEditable = "true"', true, "inherit");
testContentEditable(el => {
const parent = document.createElement("div");
parent.appendChild(el);
parent.contentEditable = "false";
}, 'set parent element contentEditable = "false"', false, "inherit");
testContentEditable(el => {
el.contentEditable = "true";
el.removeAttribute("contenteditable");
}, 'set contentEditable = "true" and then remove contenteditable attribute', false, "inherit");
testContentEditable(el => {
el.setAttribute("contenteditable", "plaintext-only");
}, "contentEditable=plaintext-only attribute", true, "plaintext-only");
testContentEditable(el => {
const parent = document.createElement("div");
parent.appendChild(el);
parent.contentEditable = "plaintext-only";
}, 'set parent element contentEditable = "plaintext-only"', true, "inherit");
</script>
</body>
</html>