javascript:if(document.body.contentEditable == false){document.body.contentEditable = true;}else{document.body.contentEditable = false;} void 0;parece que todo lo que hace es hacerlo falso.
Dado que contenteditable es un atributo de element , es mejor leerlo, establecerlo o modificarlo utilizando las propiedades .getAttribute y .setAttribute del objeto del elemento.
El fragmento muestra la sintaxis utilizada para leer y establecer el atributo, utilizando un ejemplo de trabajo en el que un botón alterna la editabilidad de un elemento de párrafo.
let editBox = document.getElementById("edit-field"); document.getElementsByTagName('button')[0].addEventListener('click', event =>{ if (editBox.getAttribute("contenteditable")=="true") { editBox.setAttribute("contenteditable", "false"); console.log("switched to not editable"); } else { editBox.setAttribute("contenteditable", "true"); console.log("switched to editable"); } }) // end button click; #edit-field { width: 300px; height: 100px; background: yellow; } <p id="edit-field" contenteditable="false"> I am editable (sometimes)</p> <button>toggle editability </button>La razón por la que siempre lo cambia a falso es principalmente porque document.body.contentEditable va a ser una cadena (es decir, "true" , "false" , "inherit" ). Su código solo necesita incluir comillas sobre true y false en su condicional para que funcione según lo previsto:
javascript:if(document.body.contentEditable == "false"){document.body.contentEditable = "true";}else{document.body.contentEditable = "false";} void 0;