2

私の Silverlight アプリケーションでは、webBrowser コントロールを使用しています。

移動先のページで次の JavaScript 関数を呼び出します。

    function notify() {
        window.external.notify("Close");
    }

奇妙な事実は、次を使用してページに移動しているときにのみ機能することです。

this.Browser.Source = new Uri("http://localhost/TestOutOfBrowser.Web/HTMLPage1.htm");

実際のサーバー名を使用して移動すると、次のようになります。

            this.Browser.Source = new Uri("http://testServerName/TestOutOfBrowser.Web/HTMLPage1.htm");

window.external.notify("Close"); を実行すると、javascript 例外 (「未特定のエラー」) が発生します。ライン。

これはおそらくセキュリティ関連ですが、この問題を解決する方法がわかりません..

どうすればこれを機能させることができますか?

4

1 に答える 1

2

同じまたは同様の問題に直面しているすべての人のために:

どうやら、これはクロスドメイン スクリプティングのセキュリティ上の問題です。Silverlight アプリケーションのドメインとページ (移動先) が異なる場合、ブラウザー コントロールはこれを実行しません。(! 127.0.0.1 と localhost でさえ「異なる」ドメインとして評価されます)

相対URIを使用してページを参照することになり、これで問題が解決しました。

グルツ

于 2010-10-14T09:58:32.243 に答える