是否可以发送javascript&来自子框架的CSS将DOM框架化为父级

时间:2011-02-04 03:46:29

标签: javascript jquery dom

我将内容插入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>

我是朝着正确的方向前进,还是根本没有办法做我要问的事情?

1 个答案:

答案 0 :(得分:1)

代码对我有用,除了在JQuery之前加载colorbox JS,因此对JQuery的调用失败。我把最后一个脚本元素写入setTimeout中,它消除了这个错误。为了验证它已完全加载到父框架中,我放入了控制台:

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

它弹出警报。

如果您正试图获取锚点以打开从内框到外框的灯箱,可能更容易更改颜色框代码以定位顶级框架而不是尝试向外进行。< / p>