Sur un site Web, http://imgthis.com/blog/?p=34, j'ai deux JavaScripts qui se chargent dans un iframe avec une galerie d'images, l'un est lytebox qui est un clone allégé de Light Box 2 pour les pop-ups de galerie d'images et l'autre est un spectacle seulement un div dans une pile de divs. Les travaux script lytebox jusqu'à ce que le spectacle seul est invoqué, à partir de ce moment-là, il est cassé dans IE FF et Opera (Chrome et Safari ne jettent pas une erreur) avec cette erreur:Résoudre un conflit JavaScript
Uncaught exception: TypeError: Cannot convert 'window.parent.frames[window.name]' to object Error thrown at line 223, column 1 in (imageLink, doSlide, doFrame) in [url to script]: var anchors = (this.isFrame) ? window.parent.frames[window.name].document.getElementsByTagName('a') : document.getElementsByTagName('a'); called from line 204, column 56 in() in [url to script]: myLytebox.start(this, false, false);
Après pauses, vous devez rechargez la page pour que tout fonctionne à nouveau. Je suppose que c'est un conflit, car il ne se produit que lorsque l'autre script a été appelé. Avant le spectacle, un seul est invoqué, cela fonctionne parfaitement.
C'est le spectacle qu'un seul code qui est intégré dans la page:
function showonlyone(thechosenone) {
var newboxes = document.getElementsByTagName('div');
for(var x=0; x<newboxes.length; x++) {
name = newboxes[x].getAttribute('name');
if (name == 'newboxes') {
if (newboxes[x].id == thechosenone) {
newboxes[x].style.display = 'block';
}
else {
newboxes[x].style.display = 'none';
}
}
}
}
Je suis perdu à la façon dont ils pourraient être contradictoires car ils sont à la recherche d'éléments différents, bien que mon JavaScript ISN » Tellement fort que peut-être cela fait toute la différence dans le monde.
En FF via Firebug l'exact erreur étant levée est "window.parent.frames [window.name] est indéfini", pas sûr si cela se rétrécit ou non. –
En ce moment je l'ai changé de "window.parent.frames [window.name]" en "window.parent.frames ['imgthis']" qui semble fonctionner avec tout. Bien que je voudrais toujours savoir pourquoi le premier ne fonctionne pas. –