1

Тема: window.createPopup(); и события

Решил переделать ДИВное окно на window.createPopup();, всё так сильно упрощается.
Содержимое генерируется и непосредственно в тегах есть события.
Браузер ругается на эти события, говорит нет объекта. Не "видит" функцию-обработчик.
Можно ли получить доступ и как?
Разумеется на ДИВах всё работает.

2

Re: window.createPopup(); и события

<HTML>
<HEAD>
<TITLE>Popup Example</TITLE>
<SCRIPT LANGUAGE="JScript">
var oPopup = window.createPopup();
function ButtonClick()
{
    var oPopBody = oPopup.document.body;
    oPopBody.style.backgroundColor = "lightyellow";
    oPopBody.style.border = "solid black 1px";
    oPopBody.innerHTML = "Click outside <B>popup</B> to close.";
    var B=oPopBody.getElementsByTagName("B")[0];
    B.onclick = function () {alert();}
    oPopup.show(100, 100, 180, 25, document.body);
}
</SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick="ButtonClick()">Click Me!</BUTTON>
</BODY>
</HTML>

3

Re: window.createPopup(); и события

Спасибо!
Пойду пробовать.

4

Re: window.createPopup(); и события

Всё работает, но при попытке обратиться по ИД, говорит нет там ни кого и при этом возвращает элемент и его ИД, если к элементу обращаться через коллекцию.

так есть
var B=oPopBody.getElementsByTagName("B")[0];
так нет
var B=oPopBody.getElementById("ID");
и так нет
var B=document.getElementById("ID");

5

Re: window.createPopup(); и события

oPopup.document.getElementById("ID")

6

Re: window.createPopup(); и события

Любитель
Объект, созданный с помощью window.createPopup(), является окном window. Для доступа к элементам, свойствам и методам DOM вызывайте Popup.document.

( 2 * b ) || ! ( 2 * b )

7

Re: window.createPopup(); и события

Rumata пишет:

Объект, созданный с помощью window.createPopup(), является окном window. Для доступа к элементам, свойствам и методам DOM вызывайте Popup.document.

Для Popup.document - всё верно! но никакого отдельного объекта window для Popup, похоже, не существует - Popup.document.parentWindow указывает на само родительское окно.

Забыл пароль и потерял e-mail.

8

Re: window.createPopup(); и события

Кажется так тоже пробовал, но точно скажу только завтра, не помню, может наоборот пробовал.

Не пойму разницы, почему к коллекции одно обращение, а по ИД другое?

9

Re: window.createPopup(); и события

Rumata, спасибо, ИД получилось.

Теперь другая непонятка, не могу class подключить ни для самого окна ни для его содержимого.
Стилями получается слишком громоздко.

10

Re: window.createPopup(); и события

Любитель
Стили, описанные в основном файле невидны в popup-окне, потому что это разные объекты со своими DOM.

Мне кажется, с этим popup-окном еще успеете намучиться, начало уже положено. Чем Вас не устраивал предыдущий вариант на ДИВах?

( 2 * b ) || ! ( 2 * b )

11

Re: window.createPopup(); и события

С этим окном проще было бы, но уже отказался.
Непонятка получилась при движении мыши по списку, самопроизвольное закрытие окна, закономерность не уловил, плюнул и переделал назад.
Всем спасибо за помощь, пригодится в другом месте.