Вызов оригинального unmolested window.open из букмарклета - PullRequest
0 голосов
/ 24 марта 2011

У меня есть букмарклет общего назначения, который начинается с:

javascript:with (window.open("")) {/* lots of irrelevant characters */

Он работает как следует (открывает новое окно и, в частности, пишет отчет об элементах страницы), но не работает на определенных страницах, когда авторы решают, что open является подходящим названием для функции:

/* somewhere in global scope */
function open() { /* something */ }

... эффективно заменяет window.open и прерывает работу букмарклета. По характеру букмарклета я ничего не могу сделать, чтобы предотвратить такое плохое поведение.

Есть ли способ вызвать оригинальный нативный window.open для восстановления в этих случаях? Обратите внимание, мой основной браузер - Opera, я действительно хочу, чтобы он там работал.

1 Ответ

1 голос
/ 24 марта 2011
window.constructor.prototype.open

Нет, извините.Вы можете сделать несколько хакеров, чтобы получить новый:)

var ifr = document.createElement ('iframe');document.body.appendChild (IFR);ifr.contentWindow.open (...)

...