Кросс-домен DOM / JS Pain - PullRequest
       1

Кросс-домен DOM / JS Pain

1 голос
/ 11 ноября 2010

У меня есть то, что я считал простой проблемой. Я пишу пакет SCORM для внешнего учебного ресурса. Это в основном iframe на HTML-странице, который клиенты устанавливают в свою LMS (систему управления обучением).

Внешний ресурс должен иметь возможность сообщать СУО, что пользователь завершил контент. Поскольку LMS и ресурс находятся в разных доменах , очевидно, что стена безопасности JS мешает мне напрямую общаться. Поэтому, когда пользователь достигает конца содержимого, внешние ресурсы устанавливают свой URL-адрес для привязки, поэтому URL-адрес изменяется от http://url до http://url#complete

.

Теперь я пытаюсь получить местоположение из фрейма, и у меня ничего не получается. Я пробовал iframe.location и iframe.window.location (.window тоже ничего). Я не могу понять, как правильно поступить.

iframe.src показывает мне исходный URL источника, но он не изменяется при обновлении iframe до версии #complete.

Есть советы? Есть альтернативы? Хотя я контролирую обе страницы, если нет метода javascript для установки междоменной связи, я не могу установить заголовок http, чтобы разрешить его, потому что я не контролирую сервер LMS - он просто выталкивает мою статическую страницу.

Редактировать: В качестве альтернативы я рассматриваю возможность сохранения завершенного события в сеансе (я думаю, что файл cookie тоже будет работать) в конце ресурса, а затем создание другой страницы, которая выводит это как JSONP заявление. Я думаю, что это было бы довольно легко сделать, но гораздо сложнее что-то, что должно быть простым. Мне буквально нужно щелкнуть один переключатель кода LMS с внешнего сайта.

1 Ответ

1 голос
/ 12 ноября 2010

Используйте easyXDM , это должно сделать это довольно легко.

Используя его, вы можете выполнять междоменный RPC без взаимодействия на стороне сервера. readme на github довольно хорошо.

...