Остановка JavaScript от закрытия окна

Моя компания должна использовать приложение, разработанное в ASP.NET другой компанией. Приложение должно быть открыто в двух отдельных окнах браузера. Компания, которая разработала приложение, добавила некоторый JavaScript в верхней части главной страницы, чтобы пользователь не открывал несколько экземпляров приложения. Скрипт, расположенный в верхней части главной страницы, выглядит следующим образом:

<script type="text/javascript">
  function OpenApplicationWindow() {
    var sessionId = 'sidus455bjzspf55cunqrv55';
    if (window.name.search(sessionId) == -1) {
        window.open(window.location.href, sessionId, "resizable=yes,scrollbars=yes,toolbar=no,status=yes");
      window.open('', '_parent', '');
      window.close();
    }
  }
  OpenApplicationWindow();
</script>

Есть ли способ открыть ссылку на эту страницу и открыть несколько экземпляров? Или все равно, чтобы остановить запуск этого сценария.

javascript,

1

Ответов: 6


1 принят

Не считая отключения JavaScript (что, вероятно, вызовет другие проблемы), единственное, что я могу придумать, - написать небольшой прокси, чтобы вырезать это.

Если вам нужно только это на нескольких рабочих станциях, вы можете использовать Fiddler с редактором сценариев для проверки и изменения ответа.

http://www.fiddler2.com/Fiddler2/version.asp - скачать Fiddler
http://www.fiddler2.com/fiddler/FSE.asp - загрузить редактор сценариев.
http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp - см. пример на этой странице, чтобы удалить все теги div.


1

Вы можете использовать GreaseMonkey для IE и создать небольшой собственный скрипт для перезаписи или удаления скрипта-нарушителя.

Дополнительная информация об использовании сценариев greasemonkey в IE.


1

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

Если бы вы могли открыть сразу два окна, это, вероятно, сломалось бы.

Простейшей задачей было бы запустить два отдельных браузера. Каждый из них получит свою собственную сессию, и они не будут мешать друг другу.


0

Сценарий, который останавливает открытие другого окна, является вторым параметром window.open, который является sessionid

Он проверяет, что окно не существует с этим именем еще до его открытия.

Не уверен, что это то, что вы действительно спрашиваете или нет.


0

Если вы используете Firefox, вы можете закодировать сценарий greasemonkey, чтобы переопределить функцию JavaScript.

JavaScript,
Похожие вопросы