2009-05-27 75 views
1

我想使用JS来切换帧的frameborder属性。这里是我的测试案例:Javascript可以切换frameborders吗?

<html> 
    <head> 
    <script type="text/javascript"> 
    function off() { 
     var f1 = document.getElementById("f1"); 
     var f2 = document.getElementById("f2"); 
     alert ("before, frame f1 had frameBorder=" + f1.frameBorder); 
     f1.frameBorder = "0"; 
     alert ("after, frame f1 has frameBorder=" + f1.frameBorder); 
     alert ("before, frame f2 had frameBorder=" + f2.frameBorder); 
     f2.frameBorder = "0"; 
     alert ("after, frame f2 has frameBorder=" + f2.frameBorder); 
    } 
    </script> 
    </head> 

    <frameset cols="50%, 50%" name="fs"> 
    <frame frameborder="1" src="http://bikeshed.com" id="f1" name="f1" /> 
    <frame frameborder="1" src="http://bikeshed.com" id="f2" name="f2" /> 
    </frameset> 
</html> 

我在Firefox中“关闭()”这加载起来,开拓萤火虫,然后键入到控制台。它运行我的函数,它报告两个框架边界已被设置为“1”,现在设置为“0”..但是,框架边界无法消失。

是我想要做的可能吗?如果是这样,怎么样?

+0

虽然您可以更改frameborder属性,但Safari和FF都不会重新呈现页面,因此您不会注意到更改。 – outis 2009-05-27 02:57:57

回答

2

使用iframe而不是帧似乎工作。你将不得不在CSS上工作以完成框架的幻想。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 

<html lang="en"> 
<head> 
    <title>Frame Test</title> 
    <script language="javascript"> 
    var off = function() { 
     document.getElementById('frame1').style.borderWidth = 0; 
     alert('off'); 
    } 
    </script> 


</head> 
<body style="margin: 0; padding: 0"> 
<table style="width: 100%; height: 100%" cols="2"> 
<tr> 
<td><iframe id="frame1" src="http://www.google.com" style="margin: 0; width: 100%; height: 100%"></iframe></td> 
<td><iframe id="frame2" src="http://www.google.com" style="margin: 0; width: 100%; height: 100%"></iframe></td> 
</tr> 
</table> 

</body> 
</html> 
1

对于某些属性,您需要使用setAttribute。尝试

f1.setAttribute('frameborder', 0); 
+0

这在FF中也行不通...... – 2009-05-27 00:17:58

+0

我认为它应该是一个大写字母为'frameBorder`的字体。但事实上,这些日子在应用于iframe时可以在FF 3.6上工作,正如@Patrick所述。 – MrWhite 2011-02-04 00:00:13