Javascript onblur влияет от ввода текстового поля в iframe? - PullRequest
0 голосов
/ 21 марта 2012

Я пытаюсь ввести URL-адрес в текстовое поле ввода, а onBlur обновить содержимое включенного iframe с помощью веб-страницы, указанной в URL-адресе.Кажется, я не могу заставить его работать, и я не могу понять, почему ...:)

Может ли кто-нибудь мне помочь?

Вот код ...

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” 
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
<script language="javascript" type="text/javascript" >
<!-- hide
function setIframeSource() {      
var theSelect = document.getElementById('location');      
var theIframe = document.getElementById('myIframe'); 
var theUrl;        
theUrl = document.getElementById("location");
theIframe.src = theUrl;
}
// end hide -->
</script>
</head>
<body><center>
<form id="form1" method="post">      
<input type="text" style="width:150px;" name="location2" id="location" onBlur="setIframeSource();">
</form>  
<table width="100%" height="100%" border="1">
<tr>
<td width="300"><iframe src="http://www.ibm.com" id="myIframe" width="280" height="300"   name="frame1"></iframe></td> 
</tr>
</table>
</center>
</body>
</html>

Ответы [ 2 ]

1 голос
/ 21 марта 2012

попробуйте добавить это после установки iframe 'src:

theIframe.contentDocument.location.reload(true);

и получить значение из ввода:

document.getElementById('location').value;

1 голос
/ 21 марта 2012
function setIframeSource() {      
    var theSelect = document.getElementById('location');      
    var theIframe = document.getElementById('myIframe'); 
    var theUrl;        
    theUrl = document.getElementById("location");
    theIframe.src = theUrl;
}

Возможно, проблема в строке 5 выше - она ​​должна гласить:

theUrl = document.getElementById("location").value;

В настоящее время вы присваиваете сам элемент ввода для theUrl, что недопустимо для theIframe.src!

...