自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

跨域引用Silverlight相關(guān)問(wèn)題解疑

開(kāi)發(fā) 開(kāi)發(fā)工具
跨域引用Silverlight在實(shí)際應(yīng)用中會(huì)出現(xiàn)異常,通常表現(xiàn)為不能展現(xiàn)出已下載的Xap包中的內(nèi)容。在這里將會(huì)針對(duì)這一問(wèn)題給出相應(yīng)的應(yīng)對(duì)措施。

Silverlight開(kāi)發(fā)工具的應(yīng)用領(lǐng)域比較廣發(fā)。不過(guò)即使是這樣一款功能強(qiáng)大的工具,在使用的時(shí)候同樣也會(huì)造成一些問(wèn)題的產(chǎn)生。比如跨域引用Silverlight時(shí),就會(huì)出現(xiàn)一些令人頭疼的問(wèn)題??缬蛞肧ilverlight,即將Silverlight包部署在A域下,卻由在B域下的網(wǎng)站引用。其中Silverlight通過(guò)HTML.Window調(diào)用了腳本方法。#t#

示例代碼

 

  1. public partial class Page : 
    UserControl  
  2. {  
  3. public Page()  
  4. {  
  5. InitializeComponent();  
  6. }  
  7. private void Button_Click
    (object sender, RoutedEventArgs e)  
  8. {  
  9. HtmlPage.Window.Alert("hi");  
  10. }  

跨域引用Silverlight異常描述

進(jìn)入B域頁(yè)面,沒(méi)有看到Silverlight展現(xiàn),右鍵點(diǎn)擊相應(yīng)區(qū)域,顯示“Silvelight”,說(shuō)明Silverlight區(qū)域已經(jīng)被渲染出來(lái)。通過(guò)HTTP Watch查看,發(fā)現(xiàn)Xap包已經(jīng)被請(qǐng)求并下載下來(lái),但就是沒(méi)有展現(xiàn)。

Silverlight正常顯示,但點(diǎn)擊按鈕后,并不彈出對(duì)話框。調(diào)試發(fā)現(xiàn),在HtmlPage.Window.Alert("hi");拋出異常,異常信息為“已禁用DOM/腳本橋”。

跨域引用Silverlight問(wèn)題解決

加載卻不展示,是由于在A網(wǎng)站下沒(méi)有給Silverlight配置正確的MIME類(lèi)型。當(dāng)引用不同域下的Silverlight包,Silverlight Runtime會(huì)檢測(cè)XAP的HTTP頭中的MIME類(lèi)型。正確的類(lèi)型是“application/x-silverlight-app”,如果配為“application/x-silverlight-2”(這似乎是舊版本的MIME配置),同樣不能正常顯示。IIS7由于默認(rèn)帶有Xap的MIME類(lèi)型配置,所以不會(huì)出現(xiàn)此類(lèi)問(wèn)題。

不能正常彈出Alert對(duì)話框,但如果改成MessageBox.Show("Click");卻可以正常運(yùn)行。這是因?yàn)樾枰渲肧ilverlight以及Host Silverlight的頁(yè)面的幾個(gè)參數(shù),使得Silverlight中的ManagedCode和頁(yè)面中的Javascript和DOM code可以交互。而在同域下,這幾個(gè)參數(shù)或者是默認(rèn)配置好的,或者就是干脆無(wú)效,所以不需要配置。具體可參考(Security Settings in HTML Bridge),具體到這里的情況,就是要在頁(yè)面中配置enableHtmlAccess屬性,使在Silverlight的Manage code里可以操縱外部Dom對(duì)象。

Asp.net頁(yè)面:

  1. < asp:Silverlight ID="Xaml1" HtmlAccess="Enabled" 
    runat="server"Source=http://localhost:2300/
    ClientBin/SilverlightApplication.xap 
    MinimumVersion="2.0.31005.0" Width="100%" 
    Height="100%" />HTML頁(yè)面: 
  2. < object data="data:application/x-silverlight-2," 
    type="application/x-silverlight-2" 
    width="80%" height="80%" > 
  3. < param name="enableHtmlAccess" value="true" /> 
  4. < param name="source" value="http://
    localhost:2300/ClientBin/Silverlight
    Application.xap"
    /> 
  5. < param name="onerror" value="onSilverlightError" /> 
  6. < param name="background" value="white" /> 
  7. < param name="minRuntimeVersion" 
    value="2.0.31005.0" /> 
  8. < param name="autoUpgrade" value="true" /> 
  9. < a href="http://go.microsoft.com/
    fwlink/?LinkID=124807"
     style="text-
    decoration: none;"
    > 
  10. < img src="http://go.microsoft.com/
    fwlink/?LinkId=108181"
     alt="Get Microsoft 
    Silverlight"
     style="border-style: none"/> 
  11. < /a> 
  12. < /object> 

以上就是我們?yōu)榇蠹規(guī)?lái)的跨域引用Silverlight相關(guān)問(wèn)題解決辦法。

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2009-12-31 15:28:02

Silverlight

2010-01-04 15:27:45

Silverlight

2010-02-05 16:07:52

C++多態(tài)覆蓋

2010-01-04 16:23:42

Silverlight

2010-02-24 10:55:01

WCF跨域訪問(wèn)

2009-12-21 10:19:05

Silverlight

2009-12-07 10:05:22

PHP session

2010-01-20 14:52:21

VB.NET修改數(shù)據(jù)窗

2010-02-22 17:29:47

WCF跨域

2009-02-04 18:20:42

服務(wù)器虛擬化VMware

2010-07-30 12:40:00

Flex跨域訪問(wèn)

2010-03-15 17:17:29

Java線程池

2010-02-02 13:20:33

C++對(duì)象傳遞

2009-12-22 11:21:43

WCF跨域訪問(wèn)

2009-12-31 15:08:22

Silverlight

2009-12-02 19:14:07

PHP header

2017-08-20 12:49:59

瀏覽器跨域服務(wù)器

2009-12-01 15:41:16

PHP substr截

2021-06-06 13:05:15

前端跨域CORS

2009-12-08 10:33:23

PHP應(yīng)用問(wèn)題
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)