Почему я не могу показать или скрыть в Internet Explorer 8 и как я могу решить проблему? - PullRequest
0 голосов
/ 07 июня 2011

Я написал код JavaScript, чтобы показать и скрыть div. Но я застрял, когда он не работает в Internet Explorer 8. Он работает плавно в других браузерах, таких как Opera, Firefox и т. Д.

Вот мой код:

<html>
    <head>
        <title>Javascript Show Hide Div Visibility</title>

        <style type="text/css">
        </style>

        <script language="javascript" type="text/javascript">
        function showHideDiv()
        {
            var divstyle = new String();
            divstyle = document.getElementById("div1").style.visibility;
            if(divstyle.toLowerCase()=="visible" || divstyle == "")
            {
                document.getElementById("div1").style.visibility = "hidden";
            }
            else
            {
                document.getElementById("div1").style.visibility = "visible";
            }
        }
        </script>
    </head>

    <body>
        <div id="div1" class="divStyle">
            <object width="300" height="300">
                <param name="movie" value="http://www.youtube.com/v/7_6B6vwE83U">
                </param>
                <embed src="http://www.youtube.com/v/7_6B6vwE83U"
                       type="application/x-shockwave-flash"
                       width="300"
                       height="300">
                </embed>
            </object>
        </div>

        <center>
             <div onclick="showHideDiv()">Click Me For show hide <div>
        </center>
    </body>
</html>

Ответы [ 6 ]

1 голос
/ 07 июня 2011

попробовать:

var div1 = document.getElementById("div1");
if(div1.style.display=="none" || div1.style.display == ""){
  document.getElementById("div1").style.diplay = "block";
}
else{
  div1.style.display = "none";
}
0 голосов
/ 23 апреля 2015

Существует свойство фильтра (style.filter), которое IE8 устанавливает в alpha(opacity=0). Просто установите его на undefined и элемент снова появится.

0 голосов
/ 02 июня 2014

Респонденты, которые все это проверили, сообщают, что в IE8 все работает нормально. Это оставило бы открытыми три варианта:

  1. Нет объявления Doctype (я предполагаю, что тестеры поместили это поверх него вручную).
  2. Это касается сайта интранета, временно или постоянно. IE8 + имеет режим совместимости / представление (= IE7), который используется по умолчанию в случае запроса сайта интрасети. Исключения делаются для сайтов, URL-адрес которых начинается с «localhost» 127.0.0.1, адреса компьютерного сервера (-симулятора), если установлен.
  3. У OP в IE8 было установлено «Просмотреть все сайты в режиме совместимости / просмотра».
0 голосов
/ 07 июня 2011

Ваша страница прекрасно работает в Firefox 4 и Internet Explorer 8 в Windows XP.

Ваша: http://jsfiddle.net/mplungjan/2KZ47/

Моя: http://jsfiddle.net/mplungjan/7bxrB/

<html>
    <head>
        <title>Javascript Show Hide Div Visibility</title>

        <style type="text/css">
            .center {text-align:center}
            #div1 {visibility:visible}
        </style>

        <script language="javascript" type="text/javascript">
            function showHideDiv() {
               var div = document.getElementById("div1");
               div.style.visibility=(div.style.visibility==="visible"||div.style.visibility==="")?"hidden":"visible";
            }
        </script>
    </head>

    <body>
        <div id="div1" class="divStyle">
        ...
        </div>

        <div class="center" onclick="showHideDiv()">Click Me For show hide <div>
    </body>
</html>
0 голосов
/ 07 июня 2011

jQuery - ваш лучший друг при работе с DOM.

<style type="text/css">
  .hidden {
    visibility: hidden;
  }
</style>

<script type="text/javascript">
    $(function(){
        $('.trigger').click(function(){
            $('#div1').toggleClass('hidden');
        });
    });
</script>

<div id="div1" class="divStyle">
    <object width="300" height="300">
        <param name="movie" value="http://www.youtube.com/v/7_6B6vwE83U"></param>
        <embed src="http://www.youtube.com/v/7_6B6vwE83U" type="application/x-shockwave-flash" width="300" height="300"></embed>
    </object> 
</div>

<center>
    <div class="trigger">Click Me For show hide</div>
</center>
0 голосов
/ 07 июня 2011

Попробуйте использовать display:

function showHideDiv()
{
    var divstyle = new String();
    divstyle = document.getElementById("div1").style.display;
    if(divstyle.toLowerCase()=="block" || divstyle == "")
    {
        document.getElementById("div1").style.display= "none";
    }
    else
    {
        document.getElementById("div1").style.display= "block";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...