Перетащите элементы в iframe. Отбрасываемая область имеет неправильные координаты и коллизии неправильные

Мне нужно реализовать функции перетаскивания в веб-приложении между элементами, присутствующими на веб-странице, и элементами внутри iframe (прежде чем вы начнете жаловаться на iframe, мне это НУЖНО по техническим причинам, это не вариант) .

У меня есть элементы на странице, которые можно перетащить в целевые удаляемые элементы внутри iframe.

Мне удалось сделать это как с пользовательским интерфейсом jQuery, так и с YUI, хотя обе библиотеки представляют одну и ту же проблему: целевой элемент (удаляемая цель) координаты неверно интерпретируются, область перетаскивания, рассматриваемая обеими библиотеками, неверна и не представляет собой фактический удаляемый объект,следовательно, столкновения между перетаскиваемым объектом и отброшенным элементом полностью нарушены. Это похоже на то, что библиотека видит удаляемый элемент, расположенный в другом месте, откуда он фактически находится.

Я думаю, это связано с тем, что iframe расположен не в верхнем левом углу страницы, а посередине. Я думаю, это потому, что я читал, как многие люди жалуются на эту проблему, и проблема исчезла, если iframe был расположен в верхнем левом углу. Кто-то предполагает, что координаты отбрасываемого элемента могут быть вычислены на основе screenX и screenY, а не clientX и clientY, и это может быть причиной проблемы, не учитывая, что элементы находятся внутри iframe, и поэтому координаты отличаются между другими элементами за пределами iframe.

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

Вопросы следующие:

1) Испытывал ли кто-нибудь подобное поведение раньше и ему удалось исправить проблему? Или есть библиотека, которая может сделать это безупречно?

2) Есть ли способ исправить эту проблему, используя методы и функции самой библиотеки? А если нет,

3) Кто-нибудь знает, какая часть библиотеки вычисляет координаты сбрасываемой области, чтобы я мог исправить это в качестве последнего крайнего варианта?

Заранее спасибо, даже самая маленькая помощь будет оценена!


РЕДАКТИРОВАТЬ

Эта скрипка демонстрирует проблему. Попробуйте переместить зеленый квадрат внутри красного квадрата (который находится внутри iframe). Вы заметите, что столкновение между двумя квадратами неверное.

http://jsfiddle.net/DQdZ9/23/

10
задан Jose Faeti 25 July 2011 в 15:38
поделиться