Можно ли отправить Javascript & CSS из дочернего кадра DOM до родителя - PullRequest
1 голос
/ 04 февраля 2011

Я вставляю контент в LMS (систему управления обучением) Desire2Learn и хочу внедрить клон лайтбокса jquery colorbox.

LMS использует различные фреймы и допускает только HTMLконтент, который должен быть помещен в обозначенный фрейм контента.Я хотел бы использовать javascript для отправки 3-х включаемых файлов на верхний уровень DOM с нижнего уровня.

Ранее я пытался выполнить следующее безуспешно:

 <script type="text/javascript">
/* locate the parent frame */
var par = parent;
while (par !== par.parent) {
  par = par.parent;
}
/* inject the css and scripts in the top frame */
var scr = par.document.createElement('script');
scr.setAttribute('type','text/javascript');
scr.setAttribute('src','jquery-1.4.3.min.js');
par.document.head.appendChild(scr);

var lnk = par.document.createElement('link');
lnk.setAttribute('type','text/css');
lnk.setAttribute('rel','stylesheet');
lnk.setAttribute('href','colorbox.css');
par.document.head.appendChild(lnk);

var scr = par.document.createElement('script');
scr.setAttribute('type','text/javascript');
scr.setAttribute('src','jquery.colorbox-min.js');
par.document.head.appendChild(scr);
</script>

Am iна все, что движется в правильном направлении, или просто нет способа сделать то, что я прошу?

1 Ответ

1 голос
/ 04 февраля 2011

Код работает для меня, за исключением того, что Jbox-файл цвета загружается до JQuery, и, следовательно, вызов JQuery завершается неудачно.Я поместил последний элемент скрипта в setTimeout, и он избавился от этой ошибки.Чтобы убедиться, что он полностью загружен в родительском фрейме, я вставил в консоль:

$(document).ready(function() { alert('hi'); });

, и он выдал предупреждение.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...