2014-03-28 2 views
0

자바 스크립트를 사용하여 xhtml 파일 내에서 화합 웹 플레이어를 시작하려고하면 웹 페이지가 웹 플레이어를 감지하지 못하고 다운로드하도록 요청합니다.Unity Web Player가 .xhtml 내에서 작동하지 않습니다.

같은 소스 .html 중에서와 (연합 자체에 의해 생성 된) 잘 작동

이유는 무엇입니까? : O

<script type='text/javascript' src='https://ssl-webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/jquery.min.js'></script> 
    <script type="text/javascript"> 
    <!-- 
    var unityObjectUrl = "http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.js"; 
    if (document.location.protocol == 'https:') 
     unityObjectUrl = unityObjectUrl.replace("http://", "https://ssl-"); 
    document.write('<script type="text\/javascript" src="' + unityObjectUrl + '"><\/script>'); 
    --> 
    </script> 
    <script type="text/javascript"> 
    <!-- 
     var config = { 
      width: 512, 
      height: 260, 
      params: { enableDebugging:"0" } 

     }; 
     var u = new UnityObject2(config); 

     jQuery(function() { 

      var $missingScreen = jQuery("#unityPlayer").find(".missing"); 
      var $brokenScreen = jQuery("#unityPlayer").find(".broken"); 
      $missingScreen.hide(); 
      $brokenScreen.hide(); 

      u.observeProgress(function (progress) { 
       switch(progress.pluginStatus) { 
        case "broken": 
         $brokenScreen.find("a").click(function (e) { 
          e.stopPropagation(); 
          e.preventDefault(); 
          u.installPlugin(); 
          return false; 
         }); 
         $brokenScreen.show(); 
        break; 
        case "missing": 
         $missingScreen.find("a").click(function (e) { 
          e.stopPropagation(); 
          e.preventDefault(); 
          u.installPlugin(); 
          return false; 
         }); 
         $missingScreen.show(); 
        break; 
        case "installed": 
         $missingScreen.remove(); 
        break; 
        case "first": 
        break; 
       } 
      }); 
      u.initPlugin(jQuery("#unityPlayer")[0], "BulletImages.unity3d"); 
     }); 
    --> 
    </script> 



     <div id="unityPlayer"> 
      <div class="missing"> 
       <a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now!"> 
        <img alt="Unity Web Player. Install now!" src="http://webplayer.unity3d.com/installation/getunity.png" width="193" height="63" /> 
       </a> 
      </div> 
     </div> 

답변

1

XHTML 페이지에서 document.write()을 사용하는 JavaScript는 허용되지 않습니다.

참고 잘못된 조각 :

<script type="text/javascript"> 
<!-- 
var unityObjectUrl = "http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.js"; 
if (document.location.protocol == 'https:') 
    unityObjectUrl = unityObjectUrl.replace("http://", "https://ssl-"); 
document.write('<script type="text\/javascript" src="' + unityObjectUrl + '"><\/script>'); 
--> 
</script> 

당신은 문제의 스크립트는 매우 간단한 작업을 수행하는 알 수 있습니다. HTTP 웹 사이트에 배포하는 경우

: 배포를 알고 있다면, 당신은 그것을 제거하고 노골적으로 결과를 포함 할 수

<script type="text/javascript" src="http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.js"></script> 

을 HTTPS 웹 사이트에 배포하는 경우 :

<script type="text/javascript" src="https://ssl-webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.js"></script> 

당신이 경우 확실하지 않은 이상적인 해결책은 페이지의 DOM을 수정하는 것이지만 더 빠르고 더러운 해결 방법은 edit a node's innerHTML directly입니다.

+0

내 문제를 해결해 주셔서 감사합니다. =) – user3243494

관련 문제