Silverlight ve JavaScript'in birbiriyle iletişim kurmasını sağlayan bir zaman geçiriyorum. page.xaml.cs dosyasında Silverlight ve JavaScript İletişimi
, ben ScriptableType ve ile iki yöntem ScriptableMember olarak sınıf işaretlenmiş. Sonra ilan:HtmlPage.RegisterScriptableObject("Page", this);
Ben iki yöntemi çağırma girişiminde
, ben obj.Content.Page tanımlanmamış olsun:var obj = document.getElementById('silverlightControl');
alert(obj); // [object HtmlObjectElement]
alert(obj.Content); // Content
alert(obj.Content.Page); // obj.Content.Page is undefined
alert(obj.Content.Page.GetRegion());
Kapak tarafında, page.xaml bir yöntemin iç. cs, seni arıyorum:
function mapRegionChanged(region) {
alert("Region changed: " + region);
}
01:
HtmlPage.Window.Invoke("mapRegionChanged", GetRegion());
aradım geçmez JavaScript ilgili bir yöntem var aşağıdaki gibi
Silverlight nesnesi ilan edilir:
UserControl olarak XAML tanımlanır<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
width="151px" height="77px" id="silverlightControl">
<param name="onload" value="regionsLoaded" />
<param name="source" value="<%= Url.Content("~/ClientBin/Worldmap.xap") %>" />
<param name="onerror" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="2.0.31005.0" />
<param name="autoUpgrade" value="true" />
<param name="enableHtmlAccess" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object>
: Eğer FireFox ve IE arasında bazı uyumsuzluk bulduysanız
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Worldmap.Page"
Width="151" Height="77" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
<Grid x:Name="LayoutRoot" Background="White" Width="151" Height="77" Cursor="Hand" MouseMove="OnMouseMove" MouseLeftButtonUp="OnMouseUp" MouseLeave="OnMouseLeave">
Görünüşe göre IE7'de çalışıyor, Firefox 3.0.5'te değil. Silverlight'la tarayıcı savaşlarını geçtiğimizi sanıyordum? –
Javascript konsolunda bir hata görüyor musunuz? – russau
Hayır, Hata Konsolunda hata yok. –