Как определить, заблокировано ли всплывающее окно на другом домене в Chrome? - PullRequest
1 голос
/ 17 мая 2011

Вы можете определить, было ли заблокировано всплывающее окно в Chrome, с помощью решений этого вопроса: Определить заблокированное всплывающее окно в Chrome

Однако решения, которые, как представляется, обнаруживаются, являются всплывающимстраница, которая находится в том же домене.Мне было интересно, есть ли способ определить, было ли заблокировано всплывающее окно для страницы в другом домене?

var newWindow = window.open('http://www.google.com/'); // this domain is something.com
if (newWindow) {
    setTimeout(function() {
        // Is there a way to detect if newWindow was blocked?
    }, 500);
}

1 Ответ

3 голосов
/ 25 мая 2011

Вы будете связаны всеми обычными политиками происхождения, и я бы рекомендовал ознакомиться с ними напрямую: http://en.wikipedia.org/wiki/Same_origin_policy.Короче говоря, вы пытаетесь установить связь между доменами, что запрещено моделью безопасности браузера.Чтобы обойти это, существуют серверные прокси, JSONP, Flash, document.domain (но только если это два разных субдомена), и множество хаков, которые работают с переменным успехом в зависимости от ваших требований к поддержке и того, что именно выпытаюсь сделать.

Можете ли вы рассказать нам больше о требованиях поддержки вашего браузера?Вы можете использовать XHR Level 2?Какую страницу вы пытаетесь загрузить во всплывающем окне?

...