2009-05-27 78 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