6

几个月前我创建了一个网络应用程序,并在 ie、ff 和 chrome 中测试它工作正常。

昨晚我去添加一些东西,发现我的隐藏 iframe 功能不再在 chrome 中工作。

如果我检查元素,我可以看到属性确实在变化,但 iframe 并未隐藏。

function hideIFrame(){
    document.getElementById("myFrame").style.visibility="hidden";
    self.focus();
}

function showIFrame(){
    document.getElementById("myFrame").style.visibility="visible";
}

myFrame div 开始隐藏。并且成功可见,但是当可见性更改为隐藏镀铬时,它并没有隐藏它,ff和ie仍然隐藏它。

知道为什么吗?

修复:

function hideIFrame(){
    document.getElementById("myFrame").style.visibility="hidden";
    document.getElementById("myFrame").style.opacity=0;
    self.focus();
}

function showIFrame(){
    document.getElementById("myFrame").style.visibility="visible";
    document.getElementById("myFrame").style.opacity=1;
}
4

4 回答 4

4

iframe 可见性切换存在问题($('iframe').css('visibility','hidden') 在 google chrome 中不起作用)。如果您希望它消失,请使用高度,宽度:0。如果您希望它只是不可见,请使用 opacity:0。

于 2012-10-07T08:17:15.530 回答
1

我没明白你的问题。可能您应该在调用该函数的地方发布更多代码。这是一个在 chrome 中运行良好的示例代码。

<script type="text/javascript">
function hideIFrame(){
document.getElementById("myFrame").style.visibility="hidden";
self.focus();
}

function showIFrame(){
document.getElementById("myFrame").style.visibility="visible";
}
</script>

<input type="button" onclick="hideIFrame()" value="hide"/>
<input type="button" onclick="showIFrame()" value="show"/>

<iframe id="myFrame">

</iframe>
于 2012-10-07T08:53:14.730 回答
1

改用 display.none

    function hideIFrame(){ 
document.getElementById("myFrame").style.display="none";
    self.focus();
}

function showIFrame(){
    document.getElementById("myFrame").style.display="inline";
   //or document.getElementById("myFrame").style.display="block";
}`
于 2020-11-06T08:19:08.360 回答
0

在我的情况下,我将只使用 JS onload 来隐藏元素,我将能够使用 JS 来切换visibility="visible"

window.onload = function() {
  document.getElementById("newDiv").style.visibility = "hidden";
}
function showHidden() {
  document.getElementById("newDiv").style.visibility = "visible";
}
于 2018-02-12T07:15:14.743 回答