2011-02-07 6 views
0

の内容を変更する:私はIFRAMEからなるHTMLページを持っていますインラインフレーム

<html> 
<body> 
<iframe id = "i1" name = "i1" src = "C:\Documents and Settings\adivekar\Desktop\sa.html"></iframe> 
<br><input type = "text" name = "t1" id = "One"/> 
<br><input type = "button" value = "change1" name = "b1" onclick = "call1()"> 
<script type = "text/javascript"> 
function call1(){ 
    var a = document.getElementById('i1'); 
    var b = a.contentDocument; 
    b.open() 
    var c = b.getElementById('Two'); 
    c.value = "dfsdf"; 
} 
</script> 
</body> 

インラインフレームを含むページがある:

<html> 
<body> 
<input type = "text" name = "t2" id = "Two"/> 

</body> 
</html> 

私はの値を更新することができませんiframeのテキストボックス。

+4

あなたがエラーを取得しますか?同じ原産地政策のためにうまくいきません。読み込んだコンテンツは別のドメインのものです... –

答えて

0

は、iframeのメイン文書と同じドメインに属していない場合は、IFRAMEのドキュメントにアクセスすることはできません

document.getElementById('i1').getElementById('Two').value = ".."; 
+0

これは動作しません。 iframe要素は独自のドキュメントオブジェクトではありません。 –

2

を試してみてください。そうであれば、あなたのコードはほとんどのブラウザで動作するはずです。私はifame要素のcontentDocumentプロパティをサポートしていないブラウザのために、わずかにそれを変更し、不必要な、おそらく問題があるのiframeドキュメントのopen()メソッドを呼び出し、削除したい:

function call1(){ 
    var a = document.getElementById('i1'); 
    var b = a.contentDocument || a.contentWindow.document; 
    var c = b.getElementById('Two'); 
    c.value = "dfsdf"; 
} 
関連する問題