Je suis en train de maintenir un module complémentaire de superposition pour Firefox. Pour passer le processus de validation Add-on de Mozilla, je dois remplacer innerHTML()
appels manipulant le contenu d'un élément DOM.Je veux remplacer l'appel innerHTML() dans un addon de superposition de Firefox
Je crée une nouvelle cellule d'une table et souhaite mettre le contenu en utilisant cette approche:
var newCell = tbl.rows[row].insertCell(col);
var div = document.createElement('div');
div.appendChild(document.createTextNode(content));
newCell.appendChild(div);
message d'erreur:
TypeError: Argument 1 of Node.appendChild does not implement interface Node.
[email protected]://gre/modules/RemoteAddonsChild.jsm:461:5
EventTargetChild/[email protected]://gre/modules/RemoteAddonsChild.jsm:431:38
Ajout des messages journaux entre les lignes montrent que la type de la nouvelle cell
et l'élément div
sont différents:
var newCell = tbl.rows[row].insertCell(col);
console.log("cell-0: " + newCell);
var div = document.createElement('div');
console.log("div-0: " + div);
div.appendChild(document.createTextNode(content));
console.log("div-1: " + div);
console.log("cell-1: " + newCell);
newCell.appendChild(div);
console.log("cell-2: " + newCell);
les messages du journal sont:
cell-0: [object CPOW [object HTMLTableCellElement]]
div-0: [object XULElement]
div-1: [object XULElement]
cell-1: [object CPOW [object HTMLTableCellElement]]
Toutes les idées que je fais mal ici?
Merci d'avance.
Désolé, ne pas aider ici, mais j'utilise FF 48 et cela fonctionne: https://jsfiddle.net/pj2eugLh/ – blex
Vous utilisez ['HTMLTableRowElement.insertCell()'] (https: // développeur. mozilla.org/en-US/docs/Web/API/HTMLTableRowElement/insertCell) pour essayer d'insérer des nœuds dans un document XUL. Il semble avoir créé des éléments HTML au lieu d'éléments XUL. Nous allons avoir besoin de plus d'informations sur le '' que vous insérez dans et comment il a été manipulé précédemment. Un lien vers la version actuelle du module wo9uld sera utile. –
Makyen
@blex, Ceci est inséré dans un document XUL. Il ne sera pas possible de le prototyper avec précision en utilisant un site HTML (par exemple jsfiddle.net).Tester XUL nécessiterait que le fichier soit local à la machine (XUL Explorer), ou en utilisant un URI 'chrome: //' dans une application basée sur Mozilla. – Makyen