molily: Ermitteln, was verwendeter Browser bei execCommand(...) einfügt

Beitrag lesen

Danke, funktioniert aber immer noch nicht.

Dann machst du noch etwas anderes falsch.

Beispiel:

foo.html

<!DOCTYPE html>  
<p><iframe name="iframe" src="bar.html"></iframe></p>  
<script>  
[code lang=javascript](function () {  
  var iWindow = window.frames.iframe;  
  iWindow.onload = loaded;  
  
  function loaded () {  
    var iDocument = iWindow.document;  
    if (iDocument.selection) {  
      var range = iDocument.body.createTextRange();  
      range.moveToElementText(iDocument.body);  
      range.select();  
    } else if (iWindow.getSelection) {  
      var range = iDocument.createRange();  
      range.selectNode(iDocument.body);  
      var selection = iWindow.getSelection();  
      selection.addRange(range);  
    }  
  }  
})();

</script>[/code]

bar.html

<!DOCTYPE html>  
<html>  
<body>  
  <p>bar</p>  
</body>  
</html>

Funktioniert wie erwartet. Allerdings nicht lokal über file://, da werfen einige Browser eine Fehlermeldung wegen Verletzung der Same-Origin Policy.

Übrigens geht auch einfach:

var selection = iWindow.getSelection();  
selection.selectAllChildren(iDocument.body);

Eine Range musst du nicht unbedingt anlegen und hinzufügen. selectAllChildren der Selection reicht.

Mathias