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