Tag: clickonce

在Internet Explorer中的AJAX请求后,window.location不起作用

我试图通过网页上的链接启动ClickOnce应用程序。 链接必须转到服务器才能启动应用程序之前请求事务GUID。 代码的工作原理如下: function clickHandler() { $.post(‘/gettransactionid.aspx’, function(tranId) { console.log(“BEFORE”); window.location = “/deploy/Company.Domain.Product.application?” + tranId; console.log(“AFTER”); }); return false; } 这在Firefox中运行得非常好,但在IE中它会导致导航并且不会打开clickonce应用程序。 在IE8开发工具的控制台窗口中显示控制台.log BEFORE和AFTER。 任何帮助将不胜感激,因为我花了4个小时试图解决它与各种黑客! 我试过了: 将window.location更改为window.open。 这只会启动窗口一秒钟,无法启动应用程序。 警告而不是window.location。 这没什么。 针对IE7,IE8和IE9。 通过将浏览器安全性添加到队列并在根窗口上下文中处理window.location来绕过浏览器安全性。 我检查过gettransactionid.aspx返回事务ID。 在Firefox中完成它 – 它工作正常。 在Microsoft的文档中找到答案: 如果您已经开发了一个使用Active Scripting启动ClickOnce应用程序的自定义Web页面,您可能会发现该应用程序无法在某些计算机上启动。 Internet Explorer包含一个名为“自动提示文件下载”的设置,该设置会影响此行为。 此选项菜单中的“安全”选项卡上提供了此设置,该设置会影响此行为。 它被称为自动提示文件下载,它列在下载类别下面。 对于Intranet网页,该属性默认设置为“启用”,默认情况下,“Internet网页”设置为“禁用”。 当此设置设置为“禁用”时,将阻止以编程方式激活ClickOnce应用程序的任何尝试(例如,通过将其URL分配给document.location属性)。 在这种情况下,用户只能通过用户启动的下载启动应用程序,例如,通过单击设置为应用程序URL的超链接。 更新2011年9月1日:具有讽刺意味的是,由于“自动提示下载”被删除,现在已经完全破坏了IE9。