我正在尝试让lightbox2与我的网站一起工作, http://www.therussianfrostfarmers.com/ 但是我似乎遇到了与外部js文件冲突的问题。我不完全确定我知道这个代码的问题在哪里,但我相信它对如何调用onload事件有所了解。主页上的博客内容被加载到iframe中,iframe被动态调整大小以使用onload事件来适应内容,但是当我导入lightbox2所需的文件时(按照正常情况)....
<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 :(得分:0)
快速查看的内容,查看函数名称updateSize()是否未在原型中重新映射