Как сохранить внешние события перетаскивания из междоменного `iframe`? - PullRequest
1 голос
/ 11 декабря 2011

Я разрабатываю плагин jQuery для проекции изображений на 360 °, где основным средством взаимодействия является перетаскивание мышью / касанием.В настоящее время сообщество сталкивается с проблемами, когда изображения находятся внутри iframe, когда указателю мыши относительно легко выскользнуть из iframe «рамки» при перетаскивании изображения, тем самым прекратив блокировку кадра "mousemove" и "mouseup" события.События DOM просто не всплывают между кадрами.Частым неприятным результатом является застрявшее перетаскивание (наилучшим примером может служить запуск внутри jsFiddle 'iframe -приведенного в действие пользовательского интерфейса).

Чтобы обойти его, используйте$.unique( $(window).add(window.top) ) Я привязываюсь либо к [ window ], либо к [ window, window.top ] в зависимости от ситуации.И это работает очень хорошо.Если все в одном домене.

Если домены различаются, Одинаковая политика происхождения активизируется и предотвращает привязку к содержащейся странице, что приводит к ошибкам безопасности, которые в итоге приводят к сбоям сценария.

Итак, исходя из вышесказанного, мой вопрос: есть ли способ прослушивания внешних событий перетаскивания из междоменной области iframe?

Неудачные попытки:

  • window.top.onmousemove = ...
  • window.top.addEventListener("mousemove" ...
  • $( window.top ).bind("mousemove" ...

1 Ответ

1 голос
/ 27 декабря 2011

Если вместо того, чтобы заставить конечного пользователя встраивать iframe, вы можете включить в него файл сценария js, из которого затем можно записать iframe и управлять событиями в области родительского документа параллельно с вашим.события iframe.Затем вы можете потенциально передавать вещи обратно в iframe через сеанс сервера (т.е. динамически добавлять скрипты на текущую страницу, которые изменяют сеанс пользователя, причем изменения запрашиваются изнутри iframe).Это совершенно не идеальная ситуация ... но она заставит все работать и даст вам доступ к родительской среде.Это становится беспорядочным из-за нескольких встраиваний, но, думаю, это дополнительно для экспертов.

...