Ich habe vor einigen Monaten eine Web-App erstellt und getestet, ob sie in ff & chrome einwandfrei funktioniert.

Ich habe letzte Nacht etwas hinzugefügt und festgestellt, dass meine Funktion zum Ausblenden von Iframes nicht mehr in Chrom funktioniert.

Wenn ich das Element inspiziere, kann ich sehen, dass sich das Attribut zwar ändert, aber der Iframe nicht ausgeblendet ist.

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

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

Das myFrame-Div startet versteckt. und wird erfolgreich sichtbar gemacht, aber wenn die Sichtbarkeit in verstecktes Chrom geändert wird, wird es nicht ausgeblendet, ff und dh verbergen es immer noch.

Irgendeine Idee warum?

Das FIX:

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;
}
6
Vince Lowe 7 Okt. 2012 im 12:12

3 Antworten

Beste Antwort

Es gibt Probleme beim Umschalten der Iframe-Sichtbarkeit ($ ('iframe'). CSS ('Sichtbarkeit', 'versteckt') funktioniert nicht in Google Chrome). Wenn Sie möchten, dass es verschwindet, verwenden Sie Höhe, Breite: 0. Wenn Sie möchten, dass es einfach unsichtbar ist, verwenden Sie die Deckkraft: 0.

4
Community 23 Mai 2017 im 12:14

In meinem Fall verwende ich nur JS onload, um das Element auszublenden, und ich kann JS verwenden, um visibility="visible" umzuschalten.

window.onload = function() {
  document.getElementById("newDiv").style.visibility = "hidden";
}
function showHidden() {
  document.getElementById("newDiv").style.visibility = "visible";
}
0
Striped 12 Feb. 2018 im 07:31

Ich habe dein Problem nicht verstanden. Möglicherweise sollten Sie weitere Codes veröffentlichen, in denen Sie die Funktion aufrufen. Hier ist ein Beispielcode, der gut in Chrom funktioniert.

<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>
1
polin 7 Okt. 2012 im 08:53