2009-04-04 20 views
0

にリダイレクトします。ボタンをクリックすると、関数が呼び出され、clickonceアプリケーションが読み込まれます。もともと私はこのすべてをjavascriptでやっていました。 jsはwindow.locationをclickonceアプリケーションのURLに設定し、タイムアウトを閉じます。これは、別のサーバーにアプリケーションをインストールするまで正常に機能しました。 IEでは、Clickonceアプリケーションがクライアントサイドスクリプトを介してロードされることは許可されていません。私は現在、ClickonceアプリケーションのURLへのリダイレクトを強制されています。私が今直面している問題は、リダイレクトが開始されたウィンドウを閉じることができるアクセス権がないことです。 jsが実行される前に、リダイレクトが最初に実行されます。私は基本的にリダイレクトを遅くしてjsを走らせる方法が必要です。は後に、私は私のaspxページの部分の背後にあるコードでコードを持ってClickOnceアプリケーション

答えて

1

あなたが前に持っていたJavaScriptを持つことになりますページにリダイレクトすることができ - ウィンドウを閉じて、ClickOnceアプリケーションにリダイレクトします。アプリケーションのURLをクエリ文字列のこのページに渡すことができます。ページは普通のhtmlでもかまいません。

+0

私の質問ではっきりしているかどうかはわかりません。私はアプリケーションであるURLにサーバー側からリダイレクトする必要があります。 javascriptを使用してURLを開くことはオプションではありません。アプリケーション側のURLにサーバー側をリダイレクトすると、ページを制御できなくなり、閉じることができます。 –

+0

私は、サーバ側コードが、サーバによって計算されたURLへのJavaScriptリダイレクトを伴うページをレンダリングすることを意味していました。これは、SAMLログインがどのように機能するかを示しています。つまり、JavaScriptからURLへのPOSTを行うページがレンダリングされます。あなたはGETをすることができます。 –

+0

私はあなたのソリューションを理解していないよ、または私は私の問題を説明するのに苦労を抱えているのどちらか。問題は、アプリケーションのURLにアクセスするためのクライアントスクリプトを実行できないことです。 jsを通してページにアクセスしようとすると、ブラウザはセキュリティ上の問題のためにブロックします。 –

0

あなたはこのような何かを行うことができます。私はjqueryのを使用していますが、あなたはあまりにも持っていけない...

WebMethod属性= GetUrlToApplicationは、基本的にパスを返しています。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      type: "POST", 
      url: "Default.aspx/GetUrlToApplication", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: ajaxSucceededFn, 
      error: errorFn     
     }); 
    }); 

    function errorFn() 
    { 
     alert('Error:-Unable to launch Application.'); 
    } 
    function ajaxSucceededFn (result) 
    { 
     window.location = result; 
     setTimeout(function() { window.open('', '_self', ''); window.close(); }, 1000); 
    } 

</script> 
関連する問題