使用Javascript动态设置帧src

时间:2011-04-30 13:26:23

标签: javascript html css

我有一个HTML元素

<frame src="#" title="Content Frame" name="content" id="content" />

我想在页面加载时使用Javascript动态设置它的“src”。我怎么能这样做?

我正在尝试类似的事情;

document.getElementById('content2').contentWindow.location = 'xyz_frame.html';

但由于某种原因,它不起作用。这是一个元素,而不是

粗略的代码;

<html>
<head>
<script language="javascript"> 
function LoadPage(){ 
document.getElementById('content2').src = 'ipad_lrd_frame.html';
}
</script> 
</head>
<body onload="LoadPage()">
<frame id="content2"></frame>
</body>

</html>

2 个答案:

答案 0 :(得分:22)

这应该有用;

document.getElementById('content2').src = "url";

(您的帧和getElementById调用的ID也不匹配)

对于FRAME,您需要FRAMESET来排除使用BODY,因此;

<frameset rows="50%,*" onload="LoadPage();">    
   <frame id="content2"></frame>
   .....

<强>更新

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<script type="text/javascript">
function LoadPage(){
    document.getElementById('content1').src = "http://www.google.com";
    document.getElementById('content2').src = "http://www.bing.com";
}
</script>
<title></title>
</head>
<frameset rows="50%,*" onload="LoadPage();">    
    <frame src="#" id="content1">    
    <frame src="#" id="content2">                
</frameset>
</html>

答案 1 :(得分:1)

我认为按名称提取帧会更合适:

document.getElementsByName('content2')[0].src = 'ipad_lrd_frame.html';

成功测试过。确保您的网页使用框架集doctype,并且包含body标记(而是使用frameset标记)。另请注意,您的脚本类型应为text/javascript,而不是语言“javascript”。