2009-06-10 149 views
0

我試圖讓lightbox2與我的網站一起工作, http://www.therussianfrostfarmers.com/ ,但是我似乎遇到了衝突的外部js文件的問題。我不完全確定我知道這個代碼出現問題,但我相信它已經得到了onload事件的調用方式。主頁上的博客內容加載到iframe中的iframe動態調整大小以適應使用onload事件的內容,但是當我輸入了lightbox2所需的文件(按正常)....onload事件動態加載外部js文件的問題

<script type="text/javascript" src="js/prototype.js"></script> 
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> 
<script type="text/javascript" src="js/lightbox.js"></script> 

它取消了我在iframe上調用的updateSize()。 lightbox2仍然有效。

我將有問題的js文件縮小到prototype.js。

我試着用函數dhtmlLoadScript()處理事件序列。 使用下面的代碼,頁面加載正常,iframe正確調整大小,但頁面變成白色,Firefox加載圖標只是繼續旋轉。

<script type='text/javascript'> 
// function to resize iframe 
function updateSize() 
{ 
    // get width 
    frame_x = $('#content').width() -5; 

    // apply width 
    $('#iframed').css('width', frame_x); 


    //get height 
    var the_height = document.getElementById('iframed').contentWindow.document.body.scrollHeight +120; 

    //apply height 
    document.getElementById('iframed').height = the_height; 

} 

// function to load external js files 
function dhtmlLoadScript(url) 
{ 
    var e = document.createElement("script"); 
    e.src = url; 
    e.type="text/javascript"; 
    document.getElementsByTagName("head")[0].appendChild(e); 
} 

// function to handle each event on onload callback 
function callbackHandler() 
{ 
    updateSize(); 
    dhtmlLoadScript("http://www.therussianfrostfarmers.com/ndxz-studio/site/js/prototype.js"); 
    dhtmlLoadScript("http://www.therussianfrostfarmers.com/ndxz-studio/site/js/scriptaculous.js?load=effects,builder"); 
    dhtmlLoadScript("http://www.therussianfrostfarmers.com/ndxz-studio/site/js/lightbox.js"); 
} 

</script> 

<iframe src='$url' frameborder='0' id='iframed' onload="callbackHandler()"></iframe> 

對不起,如果有什麼不清楚。

感謝 凸輪

回答

0

東西快速檢查,看看是否函數名updateSize()是沒有得到原型

+0

我已經改成了有些東西更獨特的重新映射,但沒有運氣。如果您現在查看該網站,您會注意到它只是停滯不前。有沒有辦法調試js,以便查看任何重複的函數名稱? – Cam 2009-06-10 08:14:54