tisdag 10 augusti 2010

Unspecified Error vid användning av pasteHtml i Internet Explorer

Eftersom Internet Explorer saknar stöd för execCommand med parametern "insertHtml" så får man använda sig av pasteHtml istället.

var html = "test";
if (document.selection && document.selection.createRange) {
   var range = document.selection.createRange();
   if (range.pasteHTML) {
      range.pasteHTML(html);
   }
}else{
   document.execCommand("insertHtml", false, html);    
}

Första gången jag använde metoden ovan så fungerade det perfekt. Men idag när jag skulle göra samma sak så fick jag ett "Unspecified error" i Internet Explorer. Inte helt oväntat så är det lite svårt att felsöka ett "Unspecified error". Jag har ägnat halva dagen åt att googla problemet utan resultat. Till slut kom jag fram till att problemet berodde på att man måste ge det aktuella fönstret fokus. I detta fall så gällde det en iframe där jag ville klistra in kod så där såg lösningen ut såhär:

document.getElementById("iframeId").contentWindow.focus();

Förhoppningsvis hittar ni denna lösning i google nu :)