<script type="text/javascript">
function change() {
document.getElementById('target').getElementsByTagName('html').getElementsByTagName('body').innerHTML = document.getElementById('src').value;
}
</script>
<textarea id="src" onchange="change();"></textarea><br/>
<iframe id="target"></iframe>
这是我的代码,我不明白为什么它不起作用。请不要jQuery。我知道这样的事情存在例如htmledit squarefree我试过框架而不是iframe而且还没有用过
答案 0 :(得分:3)
this您要找的是什么?首先我在textarea上使用onkeyup
,我不认为textarea有onchange
事件。然后我根据浏览器使用两种不同的方法抓取iframe,然后使用textarea中的文本填充iframe。
<script type="text/javascript">
function change() {
var iFrame = document.getElementById('target');
var iFrameBody;
if ( iFrame.contentDocument )
{ // FF
iFrameBody = iFrame.contentDocument.getElementsByTagName('body')[0];
}
else if ( iFrame.contentWindow )
{ // IE
iFrameBody = iFrame.contentWindow.document.getElementsByTagName('body')[0];
}
iFrameBody.innerHTML = document.getElementById('src').value;
}
</script>
<textarea id="src" onkeyup="change();"></textarea><br/>
<iframe id="target"></iframe>
答案 1 :(得分:0)
<script>
// Tested on Chrome 24 onchange is if you use backspace etc. use keyup for text
// It replaces \n with <br/> if you don't want that wrap the content in a <pre> tag
document.getElementById("src").onchange=document.getElementById("src").onkeyup=function(){
document.getElementById('target').contentDocument.getElementsByTagName('body')[0].innerHTML = this.value.replace('\n','<br/>');
}
</script>