как найти какой скрипт на веб-странице на самом деле перезаписать window.open () на window.open = true - PullRequest
0 голосов
/ 01 июня 2018

У меня есть функция javascript, которая на самом деле использует метод window.open () для загрузки страницы в Iframe.Но я уверен, что каким-то другим скриптом window.open переписывается.Вот почему я получаю сообщение об ошибке:

Uncaught TypeError: window.open is not a function

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

1 Ответ

0 голосов
/ 01 июня 2018

Вы можете установить window.open как неконфигурируемое и недоступное для записи, выполнив

Object.defineProperty( window, "open",
  {  writable: false,
     configurable: false
  }
);

перед загрузкой или выполнением других скриптов.

Затем Chrome сообщает о попытке установить window.open до true как

Uncaught TypeError: Cannot assign to read only property 'open' of object '#<Window>'

вместе с деталями того, где была предпринята попытка.Firefox ведет себя аналогично с сообщением об ошибке

TypeError: "open" is read-only


Обратите внимание, что MDN-описание изменения существующих свойств , на 1 июня2018 гласит, что попытка записи в недоступное для записи свойство "также не вызывает ошибку".Похоже, что это неправильно и не соответствует комментарию примера кода.
...