Arthur Medeiros Ответов: 1

Как автоматически закрыть веб-страницу с помощью javascript?


Всем привет,

Я нашел много подобных вопросов на разных форумах, но ни на одном из них не смог найти ответа, который действительно помог бы решить мою проблему.

В принципе, я хочу открыть URL-адрес через командную строку, он откроет браузер, обработает веб-страницу, а затем я хотел бы, чтобы она автоматически закрылась.

Зачем мне это нужно?
У меня есть приложение, которое работает на IIS. Есть некоторые процедуры, которые мне нужно выполнять каждый день в моем приложении. Я могу просто пнуть эти процедуры, запустив URL-адрес, похожий на показанный ниже:

http://myapplication.com/DoStuff.aspx?

Проблема в том, что это полностью ручная работа.
Мне было интересно, могу ли я создать пакетный файл с вызовом моего URL-адреса "start http://myapplication.com/DoStuff.aspx?", а затем я мог бы создать задачу в Windows для ежедневного запуска этого пакетного файла. Это работает для меня, за исключением того, что браузер не закроется автоматически.
Я имею в виду, что я мог бы попробовать это сделать, но в конце недели у меня будет открыто по крайней мере 5 окон.

Что я уже пробовал:

Я пытался решить эту проблему с помощью javascript, но всегда получал это сообщение:
scripts may close only the windows that were opened by it


Не имеет значения, какую функцию javascript я создаю с помощью " window. close ()", окна не закроются.

Chrome и Firefox возвращают это сообщение.
Т. е. давайте я попробую закрыть окно, но оно спросит во всплывающем окне, действительно ли я хочу его закрыть.

1 Ответов

Рейтинг:
4

Richard Deeming

Вы пытаетесь ответить не на тот вопрос. :)

Не пытайтесь найти способ использовать Javascript для закрытия окна браузера. Даже если вы найдете хак, который позволит вам это сделать, это будет ошибка в браузере и, скорее всего, будет исправлена, нарушив ваш скрипт.

Вместо этого используйте другой инструмент, чтобы сделать запрос. Например, Powershell может запросить URL-адрес, не открывая его в браузере:

$url = "http://myapplication.com/DoStuff.aspx?"
$webclient = new-object System.Net.WebClient
$webclient.UseDefaultCredentials = $True
$webpage = $webclient.DownloadString($url)


Arthur Medeiros

Привет Ричард,
Спасибо вам за предложение и за то, что вы указали мне правильное направление для решения моей проблемы.
На самом деле это не сработало для меня, но без вашего предложения я бы не стал изучать вещи powershell. Поэтому я использовал "Invoke-WebRequest".
Это сработало, но в моем коде что-то не так с преобразованием даты. Как только я решу эту проблему, powershell может стать решением.

Richard Deeming

Invoke-WebRequest[^] похоже, удобная команда. Я не думаю, что он был доступен, когда я писал свой сценарий, чтобы "разбудить" сайт служб SQL reporting services. :)