Hallo Mathias,
var iframe = document.getElementById('i');
var iframeDocument = iframe.contentDocument || iframe.document;
^^^ würde ich eher so formulieren:
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
weil sonst iframeDocument.body.innerHTML im IE 7 beispielsweise ergibt:
\---------------------------
Windows Internet Explorer
\---------------------------
<IFRAME id=ifr name=ifr src="dummy.html" width=640 height=480></IFRAME>
\---------------------------
OK
\---------------------------
Grüße,
Thomas