我正在将内容插入到LMS (学习管理系统) Desire2Learn中,并希望实现jquery lightbox克隆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>我是在朝着正确的方向前进,还是根本没有办法做到我所要求的?
发布于 2011-02-04 12:11:49
代码对我来说是有效的,除了colorbox JS是在JQuery之前加载的,因此对JQuery的调用失败。我将编写的最后一个脚本元素放在一个setTimeout中,它消除了这个错误。为了验证它是否已完全加载到父框架中,我在控制台中放入:
$(document).ready(function() { alert('hi'); });它弹出了警报。
如果您试图让锚点将lightbox从内部框架打开到外部框架,那么更改colorbox代码以定位顶层框架可能比尝试从外向内工作更容易。
https://stackoverflow.com/questions/4894372
复制相似问题