1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
<!DOCTYPE html>
<html>
<head>
<title>Editing: contentEditable attribute test</title>
<link rel="author" title="Baidu" href="mailto: guopengcheng@baidu.com" />
<link
rel="help"
href="https://html.spec.whatwg.org/multipage/#contenteditable"
/>
<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>
|