2010-08-25 94 views
6

我需要能夠計算出哪些頁面託管了我的silverlight應用程序。我可以使用System.Windows.Browser.HtmlPage.Document.DocumentUri.AbsolutePath獲取iframe的url,但我想要獲取託管iframe的網頁的網址。從iframe中的silverlight應用程序獲取父頁面url

System.Windows.Browser.HtmlPage.Document.DocumentElement.Parent爲空。

謝謝!

回答

2

那麼有人給了我一個link但他們的答案已經消失了?歡呼無論它是誰! :)

這是我做的方式:

MainPage.xaml.cs中:

public MainPage() 
    { 
     InitializeComponent(); 
     this.Loaded += new RoutedEventHandler(Page_Loaded); 
     HtmlPage.RegisterScriptableObject("Page", this); 
     HtmlPage.Window.Invoke("GetParentURL"); 
    } 

    [ScriptableMember] 
    public void GetParentURL(string result) 
    { 
     if (result.IndexOf("WhatIamLookingFor") > 0) 
      imgLink.Visibility = Visibility.Visible; 
     else 
      imgLink.Visibility = Visibility.Collapsed; 
    } 

的Default.aspx:

<script type="text/javascript">  
    function GetParentURL() { 
     var control = document.getElementById("silverlightControlHost"); 
     control.children[0].Content.Page.GetParentURL(parent.location.href); 
    } 
</script> 

<div id="silverlightControlHost"> 
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
     <param name="source" value="/ClientBin/MyApp.Silverlight.xap"/> 
     <param name="background" value="transparent" /> 
     <param name="minRuntimeVersion" value="3.0.40624.0" /> 
     <param name="autoUpgrade" value="true" /> 
     <param name="windowless" value="true" /> 
     <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> 
     <img src="http://go.microsoft.com/fwlink/?LinkId=108181" 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> 
相關問題