Диалоговое окно Extlib кажется прикрепленным к правой границе окна

У меня такое странное явление с диалогом extlib, с которым я никогда раньше не сталкивался. Сценарий довольно прост: есть элемент управления ссылкой, вызывающий метод dialog.show() через событие conclick на стороне сервера. Однако как только появляется диалоговое окно, оно каким-то образом приклеивается к правому краю окна браузера. Перетаскивание диалогового окна влево на самом деле не перемещает его, а вместо этого увеличивает его ширину!

Я вообще не вижу ничего особенного, глядя на исходный код через firebug. Насколько я знаю, в этом приложении есть только одна особенность: рассматриваемая Xpage работает внутри классического набора фреймов из-за того, что это веб-приложение Domino 10-летней давности, и у него просто нет бюджета, чтобы полностью преобразовать его в логику XSP, поэтому я Я делаю это один за другим, меня просят внести некоторые коррективы.

До сих пор эта комбинация работает просто отлично, до сих пор никаких недостатков, и я совсем не уверен, что одно как-то связано с другим.

Происходит как в Firefox, так и в MSIE. Я пробовал это на серверах версии 8.5.3 UP1, а также 9.0.1. Версия конструктора 9.0.1.

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

Любой намек более чем приветствуется.

ИЗМЕНИТЬ:

Тем временем я попробовал диалоговое окно всплывающей подсказки вместо стандартного: снова появляется результирующий элемент управления, закрепленный на правом краю, но он также охватывает весь родительский фрейм. И маркер всплывающей подсказки, который должен указывать на вызывающую ссылку, также указывает на крайнее правое положение. Так что теперь для меня очевидно, что эти элементы управления не любят вызываться в контексте набора фреймов. Или это могло быть так?

РЕДАКТИРОВАНИЕ № 2:

Благодаря Патрику и Майклу у меня появилось еще несколько идей, что я могу попробовать. Это все еще не работает, как ожидалось, но, по крайней мере, теперь я могу точно сказать, что окружающий набор фреймов не является причиной всего этого: в пустой базе данных с набором фреймов и всем диалогом все работает как положено. В то время как диалоговое окно не работает в базе данных моего проекта, даже если я вызываю страницу сам по себе.
Самое странное, что я только что обнаружил, это если я запускаю страницу в Firefox И с разделением firebug. окно открыто, тогда диалоговое окно ведет себя нормально, поскольку я могу перетаскивать его, как хочу.


person Lothar Mueller    schedule 19.11.2013    source источник
comment
Вы пробовали это с пустым NSF?   -  person Patrick Sawyer    schedule 21.11.2013
comment
Я видел это с первым XPinC, и это было вызвано старшим движком Gecko. Никогда не видел его снова. Я предполагаю, что в вашем случае проблема css, возможно, вызвана тем, что ваш css перекрывается с определениями из extlib. Вы пытались отследить вычисленный стиль с помощью firebug?   -  person Michael Gollmick    schedule 21.11.2013
comment
Я видел эту проблему в старых версиях IE и Domino 8.5.2. Но я видел и другие проблемы с диалогами, когда решил проявить фантазию и применить стили к вещам. Пробовали ли вы демо-версию библиотеки расширений xpages для проверки правильности функционирования?   -  person Patrick Sawyer    schedule 22.11.2013
comment
Извините за поздний ответ - спасибо за ваши предложения; Я посмотрю, что выйдет из возни с вычисляемым css. - @Patrick: не уверен, что вы подразумеваете под проверкой правильной функциональности: я знаю, что диалоговое управление extlib нормально работает в стандартных средах, поскольку я использую его довольно часто.   -  person Lothar Mueller    schedule 25.11.2013


Ответы (1)


Наконец я нашел решение; причиной было содержимое диалогового окна:

в моем случае диалог содержит фиксированный текст, структурированный только с помощью некоторых собственных тегов html "p" и "ul". Результирующее текстовое содержимое отображается как одна длинная строка для каждого тега структуры; перенос слов происходит там, где диалоговый контейнер достигает правой границы окна, но на самом деле текст хотел бы растянуться на всю длину строки. Таким образом, диалоговое окно кажется прикрепленным к правому краю, и если я перетащу его влево, оно просто увеличит свою ширину. Если бы мой экран был достаточно широким, диалоговое окно, наконец, в какой-то момент стало бы перетаскиваемым, но, к сожалению, текст слишком длинный для этого (надеюсь, я смог объясниться).

Решение настолько простое, насколько это возможно: предоставление элементу управления контейнером диалогового окна атрибута стиля, ограничивающего его начальную ширину, скажем, 60%, решает загадку.

person Lothar Mueller    schedule 25.11.2013