Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Ошибка с createPopup()


Автор: zont 24.8.2005, 12:46
Здравствуйте!

Возможно кто-то сталкивался с IE-шным createPopup(). Вопрос такой, на некоторых сайтах (www.mail.ru, www.yahoo.com) окно создать можно, но нет доступа к его document, зависимость поймать не могу, гуглинг не помог совершенно.
Код

P=createPopup();//сам объект
alert(P.document);//на основной массе сайтов вижу [object], на некоторых отказ в доступе
P.show(100,100,200,200,document.body);//вывод на экран


p.s.
C mail.ru разобрался, очистив аттрибуты тега <BASE>, но теоретицски не врубаюсь...

Автор: Phantom1 24.8.2005, 13:32
Чет я недопер что надо
если запрет на просмотр то можно так
Код

<script>
function click() {
event.cancelBubble = true;
event.returnValue = false;
}
document.oncontextmenu = click;
</script> 

Автор: zont 24.8.2005, 13:59
Phantom1

Нет-нет, дружище, тут другая история, это IE-расширение (своё контекстное меню основанное на createPopup), которое должно цепляться за каждую страницу. Но есть страницы, где я не могу пробиться к document созданного popup-окна и, соответственно, не могу прописать HTML в тело контекстного меню.

Автор: Sardar 24.8.2005, 14:28
Цитата(zont @ 24.8.2005, 12:59)
Но есть страницы, где я не могу пробиться к document созданного popup-окна

По идее только если документ с чужого домена ты не сможешь получить к нему доступ. Это фича, дабы пароли левые скрипты не дёргали.

Автор: zont 25.8.2005, 14:43
Sardar

Спасибо, это понятно, применительно к своей проблеме методом тыка пришёл к тому, что в том случае, если в теге BASE страницы прописан HREF, не совпадающий с document.domain этой страницы, то доступ к document созданного popup запрещается. Обойти не могу, кульбиты с временным изменением атрибута BASE приводят к запросам IE на доменный переход... В общем, нормально popup на таких страницах не запустить. Или я не знаю как.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)