2011-04-26 5 views
1

J'ai le code suivant dans une fonction:node.setAttribute provoque INVALID_CHARACTER_ERR

this.HtmlRef = document.createElement("canvas"); 

    if (!this.HtmlRef) 
    { 
    return false; 
    } 

    this.HtmlRef.appendChild( document.createTextNode("Your browser doesn't support dynamic graphic drawings (Canvas)!") ); 

    var Width = document.createAttribute("width"); 
    var Height = document.createAttribute("height"); 
    Width.nodeValue = 0; 
    Height.nodeValue = 0; 

    this.HtmlRef.setAttribute(Width); /* error */ 
    this.HtmlRef.setAttribute(Height); /* error */ 

J'ai aussi essayé de changer les noms de largeur et la hauteur, mais sans succès! Le message d'erreur entier:

Uncaught Error: INVALID_CHARACTER_ERR: DOM Exception 5

Merci.

La solution est d'utiliser setAttributeNode au lieu de setAttribute

+0

Vous pouvez voir cette erreur si vous utilisez 'document.createElement ('document # ') '(ou avec' createElementNS'); Cela peut se produire si vous essayez naïvement de cloner un 'Document' entier au lieu du nœud racine. La solution est de commencer le clonage au noeud node.documentElement (la racine). – Phrogz

Répondre

2

utilisation setAttributeNode() au lieu de setAttribute()

+0

Cela fonctionne, merci;) – ComFreek

Questions connexes