代码之家  ›  专栏  ›  技术社区  ›  JumpingJezza

从iframe中的silverlight应用程序获取父页url

  •  6
  • JumpingJezza  · 技术社区  · 15 年前

    System.Windows.Browser.HtmlPage.Document.DocumentUri.AbsolutePath ,但我想获取承载iframe的网页的URL。

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

    1 回复  |  直到 13 年前
        1
  •  2
  •   JumpingJezza    15 年前

    有人给了我一个 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;   
        }
    

    默认.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>