Я пытаюсь запустить приложение 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.Console.log ДО и ПОСЛЕ отображается в окне консоли в инструментальных средствах разработки IE8.Буду признателен за любую помощь, так как я потратил 4 часа на это, пытаясь решить ее с помощью различных хаков!
Я попытался:
- , изменив window.location на window.открыть.Это просто вызывает окно на секунду и не запускает приложение.
- предупреждение вместо window.location.Это ничего не делает.
- Против IE7, IE8 и IE9.
- Обходит безопасность браузера, добавляя его в очередь и обрабатывая window.location в контексте корневого окна.
- Я проверил, что gettransactionid.aspx возвращает идентификатор транзакции.
- Делаем это в Firefox - он отлично работает.
Найден ответ в документации Microsoft:
Если вы разработали пользовательскую веб-страницу, которая запускает приложение ClickOnce с использованием активных сценариев, вы можете обнаружить, что приложение не будет запускаться на некоторых компьютерах.Internet Explorer содержит параметр, который называется «Автоматическое уведомление о загрузке файлов», который влияет на это поведение.Этот параметр доступен на вкладке «Безопасность» в меню «Параметры», что влияет на это поведение.Это называется автоматическим запросом на загрузку файлов, и оно находится под категорией загрузок.Для свойства по умолчанию для веб-страниц интрасети установлено значение «Включить», а для веб-страниц в Интернете - «Отключить по умолчанию».Если для этого параметра установлено значение «Отключить», любая попытка программной активации приложения ClickOnce (например, путем присвоения его URL-адреса свойству document.location) будет заблокирована.В этом случае пользователи могут запускать приложения только через пользовательскую загрузку, например, щелкнув гиперссылку, установленную на URL-адрес приложения.
Обновление 1 сентября 2011 года: по иронии судьбы это теперь полностью прервалось.IE9 благодаря удалению «Автоматического запроса на загрузку».