Почему это терпит неудачу в Firefox и Chrome? - PullRequest
0 голосов
/ 12 апреля 2011

Это обычный фрагмент JavaScript, используемый для отображения заставки клиента в Silverlight:

function onSourceDownloadProgressChanged(sender, eventArgs) {
            var myHost = document.getElementById("Xaml1");
            var rectBar = myHost.content.findName("rectBar");
            var rectBorder = myHost.content.findName("rectBorder");
            if (eventArgs.progress)
                rectBar.Width = eventArgs.progress * rectBorder.Width;
            else
                rectBar.Width = eventArgs.get_progress() * rectBorder.Width;
        }

По какой-то причине Firefox и Chrome выдают ошибки в этой строке:

var rectBar = myHost.content.findName("rectBar");

Они жалуются, что "myHost is null" .

Это отлично работает в Internet Explorer, но в Firefox и Chrome индикатор выполнения никогда не обновляется из-за этой ошибки.* Ключевая часть, через которую он проходит, выглядит так:

<div id="silverlightControlHost">
        <object id="xaml1" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/MyApp.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="4.0.50826.0" />
          <param name="autoUpgrade" value="true" />
          <param name="splashscreensource" value="ClientBin/SplashScreen.xaml" />    
          <param name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged" />
          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
              <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
          </a>
        </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>

Ответы [ 2 ]

4 голосов
/ 12 апреля 2011

Потому что это xaml1, а не Xaml1, а Internet Explorer слишком ленив, чтобы заботиться о вашей опечатке.

3 голосов
/ 12 апреля 2011

потому что другие браузеры чувствительны к регистру."Xaml1"! = "Xaml1"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...