Я пытаюсь заставить lightbox2 работать с моим сайтом,
http://www.therussianfrostfarmers.com/
Однако, похоже, у меня проблема с конфликтующими внешними js-файлами. Я не совсем уверен, что знаю, в чем проблема с этим кодом, но я верю, что он связан с тем, как вызываются события загрузки. содержимое блога на домашней странице загружается в 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>
.... он отменяет мой updateSize (), вызываемый в iframe. lightbox2 все еще работает.
Я сузил проблемный файл js до prototype.js.
Я пытался обработать последовательность событий с помощью функции dhtmlLoadScript ().
Используя следующий код, страница загружается правильно, размер фрейма корректно изменяется, но затем страница становится белой, а значок загрузки 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>
Извините, если что-то неясно.
Спасибо
Cam