2014-02-11 4 views
0

Firefox와 innerhtml에 문제가 있습니다. 그것이 작동하지 않는 이유를 알아낼 수 없습니다 :/크롬, 오페라, IE, 사파리가 잘 작동하지만, 파이어 폭스 ... 내 코드, CSS의 조금, 하나의 기능과 몸의Mozilla Firefox innerhtml이 작동하지 않습니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<head> 
    <title>Dokument bez názvu</title> 
    <meta charset="utf-8"> 
    <link rel="stylesheet" type="text/css" href="css/styl.css"> 
    <script type='text/javascript' src='js/jquery-1.9.1.js'></script> 
    <style> 
     #displaybox 
     { 
      z-index: 10000; 
      filter: alpha(opacity=100); /*older IE*/ 
      filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100); /* IE */ 
      -moz-opacity: 1; /*older Mozilla*/ 
      -khtml-opacity: 1; /*older Safari*/ 
      opacity: 1; /*supported by current Mozilla, Safari, and Opera*/ 
      position: fixed; 
      top: 20px; 
      left: 0px; 
      width: 100%; 
      height: 100%; 
      color: #FFFFFF; 
      text-align: center; 
      vertical-align: middle; 
     } 
     body 
     { 
      font-family: Calibri; 
     } 
     .black_overlay 
     { 
      visibility: hidden; 
      position: absolute; 
      top: 0%; 
      left: 0%; 
      width: 100%; 
      height: 100%; 
      background-color: black; 
      z-index: 1001; 
      -moz-opacity: 0.7; 
      opacity: .70; 
      filter: alpha(opacity=70); 
     } 
    </style> 
    <script> 
     function clicker() { 
      var thediv = document.getElementById('displaybox'); 
      if (thediv.style.display == "none") { 
       thediv.style.display = ""; 
       thediv.innerHTML = "<embed src='prohlidka.html' height='638' width='1024' ></embed>"; 
       var thelay = document.getElementById('fade'); 
       thelay.style.visibility = "visible"; 
      } else { 
       thediv.style.display = "none"; 
       thediv.innerHTML = ''; 
       var thelay = document.getElementById('fade'); 
       thelay.style.visibility = "hidden"; 
      } 
      return false; 
     } 

    </script> 
</head> 
<body> 
    <div id="fade" class="black_overlay"> 
    </div> 
    <div id="displaybox" style="display: none; overflow: visible"> 
    </div> 
    <a id="otevrit" href='#' onclick='return clicker();'>Virtuální mapa</a> 
</body> 

합니다. 내가 말했듯이, 다른 브라우저가 잘 작동합니다. 그들은 정확히 내가 필요로하는 정확히 innerhtml를 보여줍니다. 하지만 파이어 폭스는 그렇지 않다. 검은 색 오버레이는 잘 작동한다. 자바 스크립트를 검사 할 때 아무런 오류가 없습니다.

답변

0

mozilla firefox에서 코드가 올바르게 작동하고 있습니다. WORKING FIDDLE을 그냥 코드 줄을 추가 :

나는이 바이올린에 사용 console.log($('#displaybox').html());을하고 난으로 답을 얻고있다 : 나는 동일한 입력을 제공 한대로 정확 <embed src="https://www.google.com/" height="638" width="1024">.

firebug에서 ID displaybox을 볼 때 해당 ID에 embed 코드가 삽입 된 것을 볼 수있었습니다.

기술적으로 코드에는 아무런 문제가 없습니다. 따라서 페이지를 열어 본 적이 있다면 logicwrong입니다. 페이지를 열려면 embed 대신 iframe src을 사용해야합니다.

+0

이 코드도 실행했는데 정상적으로 작동합니다. – bergie3000

+0

나는 embed를 iframe으로 대체했으며 잘 작동합니다. D 정말 고마워요. 그것도 내 다른 문제를 해결^^ – user3197269

+0

@ user3197269 : 도움이 된 것을 기쁘게 :) –

0

아니요, innerhtml은 문제가 아니며, <embed> 태그입니다. 웹 페이지를 열지는 않지만 예를 들어 동영상을 의미합니다. 대신 같은 것을 시도해야합니다.

0

같은 문제가 발생했습니다. 해결책은 .innerHTML 대신 .value를 사용하여 Div에서 값을 가져올 수 있다는 것입니다. 이것은 당신이 사용할 어떤 종류의 브라우저에서도 가장 엉성하게 작동합니다.

관련 문제