2009-04-04 4 views
0

Ich habe Code im Code hinter Teil meiner Aspx-Seite. Auf Knopfdruck wird eine Funktion aufgerufen, so dass eine clickonece-Anwendung geladen wird. Ursprünglich habe ich all das in Javascript gemacht. Die js setzen die window.location auf die URL meiner clickonce-Anwendung und schließen durch eine Zeitüberschreitung. Dies funktionierte gut, bis ich die Anwendung auf einem anderen Server installierte. Der IE erlaubt nicht, dass die clickonce-Anwendung über das clientseitige Skript geladen wird. Ich bin jetzt gezwungen, eine Umleitung auf die URL der Clickonce-Anwendung zu machen. Das Problem, auf das ich jetzt stoße, hat keinen Zugriff, um das Fenster schließen zu können, von dem aus die Weiterleitung initiiert wurde. Die Umleitung wird zuerst ausgelöst, bevor eine js ausgeführt werden konnte. Ich brauche im Grunde eine Möglichkeit, die Weiterleitung zu verlangsamen, so dass ich meine js ausführen kann.Schließen einer aspx-Seite nach Umleitung zu einer clickonce-Anwendung

Antwort

1

Sie können zu einer Seite umleiten, die das JavaScript hat, das Sie zuvor hatten - um das Fenster zu schließen und zur clickonce-Anwendung umzuleiten. Sie könnten die URL der Anwendung an diese Seite in der Abfragezeichenfolge übergeben. Die Seite könnte einfach HTML sein.

+0

Ich bin mir nicht sicher, ob ich in meiner Frage klar war. Ich muss eine Server-Seite umleiten, um eine URL, die eine Anwendung ist. Die Verwendung von JavaScript zum Öffnen der URL ist keine Option. Sobald ich eine serverseitige Umleitung zu einer URL der Anwendung vorgenommen habe, habe ich keine Kontrolle mehr über die Seite, so dass ich sie schließen kann. –

+0

Ich meine, dass der serverseitige Code eine Seite mit einer JavaScript-Umleitung auf die vom Server berechnete URL rendert. So funktionieren SAML-Logins - es wird eine Seite gerendert, die einen POST vom JavaScript zu einer URL macht. Du könntest ein GET machen. –

+0

Entweder verstehe ich Ihre Lösung nicht oder es fällt mir schwer, mein Problem zu erklären. Das Problem ist, dass ich kein Client-Skript ausführen kann, um zur URL der Anwendung zu gelangen. Wenn ich versuche, über js auf die Seite zuzugreifen, sperrt der Browser sie aus Sicherheitsgründen. –

0

könnten Sie so etwas tun. Ich benutze jquery, aber Sie haben nicht auch ..

webmethod = GetUrlToApplication, ist im Grunde zurück Pfad.

<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>