2011-02-07 22 views
0

Я имею 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

Попробуйте

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

Это не сработает. Элемент iframe не является его собственным объектом документа. –

2

Если IFrame не из того же домена, что и основной документ, вы не сможете получить доступ к документу в IFrame в. Если это так, ваш код должен работать в большинстве браузеров. Я бы изменить это немного для браузеров, которые не поддерживают contentDocument свойства ifame элементов и удалить вызов open() метода IFrame документа, который является ненужным и, возможно, проблематично:

function call1(){ 
    var a = document.getElementById('i1'); 
    var b = a.contentDocument || a.contentWindow.document; 
    var c = b.getElementById('Two'); 
    c.value = "dfsdf"; 
} 
Смежные вопросы