2009-06-10 120 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