2014-03-28 30 views
0

當我嘗試使用javascript在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

JavaScript不允許在XHTML頁面上使用document.write()

注有問題的片段:

<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