我将内容插入LMS(学习管理系统)Desire2Learn并希望实现jquery lightbox clone 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>
我是朝着正确的方向前进,还是根本没有办法做我要问的事情?
答案 0 :(得分:1)
代码对我有用,除了在JQuery之前加载colorbox JS,因此对JQuery的调用失败。我把最后一个脚本元素写入setTimeout中,它消除了这个错误。为了验证它已完全加载到父框架中,我放入了控制台:
$(document).ready(function() { alert('hi'); });
它弹出警报。
如果您正试图获取锚点以打开从内框到外框的灯箱,可能更容易更改颜色框代码以定位顶级框架而不是尝试向外进行。< / p>