shadowbox.jsと他のjsライブラリのコンフリクトについて
shadowbox.jsと他のjsライブラリがコンフリクトしたのでメモ。
調べているとonloadイベントが競合していたようなので、shadowboxの記述を以下に変更しました。
■修正前
<script type="text/javascript" src="/shadowbox/js/shadowbox-jquery.js"></script>
<script type="text/javascript" src="/shadowbox/js/shadowbox.js"></script>
<script type="text/javascript">
Shadowbox.loadSkin('classic', '/shadowbox/skin');
Shadowbox.loadLanguage('en', '/shadowbox/lang');
Shadowbox.loadPlayer(['img', 'swf', 'flv', 'qt', 'wmp', 'iframe', 'html'], '/shadowbox/player');
window.onload = function(){
Shadowbox.init();
};
</script>
■修正後
<script type="text/javascript">
function addEvent(elm,listener,fn){
try{
elm.addEventListener(listener,fn,false);
}catch(e){
elm.attachEvent("on"+listener,fn);
}
}
</script>
<script type="text/javascript" src="/shadowbox/js/shadowbox-jquery.js"></script>
<script type="text/javascript" src="/shadowbox/js/shadowbox.js"></script>
<script type="text/javascript">
Shadowbox.loadSkin('classic', '/shadowbox/skin');
Shadowbox.loadLanguage('en', '/shadowbox/lang');
Shadowbox.loadPlayer(['img', 'swf', 'flv', 'qt', 'wmp', 'iframe', 'html'], '/shadowbox/player');
addEvent(window,"load",function(){Shadowbox.init();});
</script>
■参考URL