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