PSWinner
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Перечитал я этот форум, также перелопатил кучу страниц через Яндекс, перелистал справочник по JavaScript, и смог разобраться в своей задаче, хотя прямого ответа нигде найти не смог. Условия задачи такие: 1. Есть страница со списком ссылок. 2. Каждая ссылка - это вызов одной и той же функции, но с разными аргументами (в списке их 4). 3. Аргументы - это URL страниц, которые нужно открыть в Pop-Up окне, ширина и высота окна, наличие полос прокрутки. 4. Необходимо, чтобы при клике на ссылке открывалось окно заданного размера с полосой прокрутки или без неё (в зависимости от ссылки), содержащее заданную страницу. 5. Содержимое открывающихся в новом окне страниц - файлы HTML, которые я не могу редактировать, так как он находится на чужом сайте. 6. Также необходимо, чтобы в случае, когда пользователь кликнул на другой ссылке в основном (родительском) окне, Pop-Up окно изменило размер и свойства в соответствии с новыми аргументами вызываемой функции. Я это реализовал так: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <meta http-equiv="Content-Language" content="ru"> <title>Каталог</title> <script type="text/javascript"> <!-- var myFLSeriesWindow; function popUpSeries(url,width,height,scroll) { if (myFLSeriesWindow && !myFLSeriesWindow.closed) {myFLSeriesWindow.close()}; myFLSeriesWindow = window.open('http://www.foo-site.ru/'+url,'FLSeries', 'resizable=yes,scrollbars='+scroll+',menubar=no,height='+height+',width='+width); } //--> </script> </head> <body> <p><a href="javascript:popUpSeries('page1.htm',772,484,'no')">Ссылка 1</a></p> <p><a href="javascript:popUpSeries('page2.htm',422,568,'yes')">Ссылка 2</a></p> </body> </html> В IE 6 и Mozilla Firefox 1.04 это решение протестировано и работает. В Opera 7.23 почему-то нет (по клику на ссылке открывается не окно, а вкладка, при этом по клику на другой ссылке ничего не происходит). В консоли JavaScript появляется следующее сообщение: Javascript URL thread: "javascript:popUpSeries('page2.htm',422,568,'yes')" Error: name: ReferenceError message: Security error: attempted to read protected variable В форумах люди пишут, что это связано с реализацией безопасности в Опере (якобы, скрипту родительской страницы запрещено манипулировать всплывающим окном со страницей, хостящейся на другом сайте). Хотелось бы узнать от более опытных людей, так ли это, и как можно обойти эту особенность браузера Opera. Единственное, что мне пока пришло в голову - это загрузка предназначенной для Pop-Up окна страницы через фрейм в этом Pop-Up окне. |