2011-02-04 24 views
1

我將內容插入LMS(學習管理系統)Desire2Learn和希望實施的jQuery燈箱克隆colorbox.是否有可能從一個送孩子的JavaScript和CSS的DOM框架到父

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

這不會工作,如果你在本地測試。出於安全原因,(所有框架的)域名必須匹配。除此之外,這看起來不錯。 – JCOC611 2011-02-04 03:50:53

回答

1

該代碼適用於我,除了colorbox JS在JQuery之前加載,因此對JQuery的調用失敗。我把最後一個腳本元素寫在setTimeout裏面,它擺脫了那個錯誤。爲了驗證它已經完全加載到父框架中,我放入控制檯:

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

並且它彈出警報。

如果您試圖讓錨點從內框架向外層框架打開燈箱,則可能更容易將colorbox代碼更改爲定位頂層框架,而不是嘗試向外進行工作。

相關問題