Del*_*ted 6 javascript clickonce jquery internet-explorer window
我试图通过网页上的链接启动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;
}
Run Code Online (Sandbox Code Playgroud)
这在Firefox中运行得非常好,但在IE中它会导致导航并且不会打开clickonce应用程序.在IE8开发工具的控制台窗口中显示控制台.log BEFORE和AFTER.任何帮助将不胜感激,因为我花了4个小时试图解决它与各种黑客!
我试过了:
在Microsoft的文档中找到答案:
如果您开发了一个使用Active Scripting启动ClickOnce应用程序的自定义Web页面,您可能会发现该应用程序无法在某些计算机上启动.Internet Explorer包含一个名为"自动提示文件下载"的设置,该设置会影响此行为.此选项菜单中的"安全"选项卡上提供了此设置,该设置会影响此行为.它被称为自动提示文件下载,它列在下载类别下面.对于Intranet网页,该属性默认设置为"启用",默认情况下,"Internet网页"设置为"禁用".当此设置设置为"禁用"时,将阻止以编程方式激活ClickOnce应用程序的任何尝试(例如,通过将其URL分配给document.location属性).在这种情况下,用户只能通过用户启动的下载启动应用程序,例如,通过单击设置为应用程序URL的超链接.
更新2011年9月1日:具有讽刺意味的是,由于"自动提示下载"被删除,现在已经完全破坏了IE9.
回答!
如果您开发了一个使用活动脚本启动 ClickOnce 应用程序的自定义网页,您可能会发现该应用程序在某些计算机上无法启动。Internet Explorer 包含一个名为“文件下载自动提示”的设置,该设置会影响此行为。此设置位于影响此行为的“选项”菜单中的“安全”选项卡上。它称为文件下载自动提示,列在“下载”类别下方。对于 Intranet 网页,该属性默认设置为“启用”;对于 Internet 网页,该属性默认设置为“禁用”。当此设置设置为“禁用”时,任何以编程方式激活 ClickOnce 应用程序的尝试(例如,通过将其 URL 分配给 document.location 属性)都将被阻止。在这种情况下,用户只能通过用户启动的下载来启动应用程序,例如,通过单击设置为应用程序的 URL 的超链接。
因此,请更改 IE 安全设置以打开文件下载的自动提示。