2011-05-28 4 views
3

J'ai deux images, l'expression s'exécutant dans la première image et appelant la fonction highlightElements dans une autre image. Cette expression fonctionne très bien dans Firefox:Incompatibilité avec Chrome et Firefox

parent.frames[0].highlightElements(lineNumbers, stringObj); 

La fonction highlightElements (juste pour sûr):

function highlightElements(lineNumbers, stringObj) { 
    // run through the cycle and highlight them 
    //for (var ln in lineNumbers) { 
    var length = lineNumbers.length; 
    for (var ln=0; ln<length; ln++) { 
    var elements = $('.no'); 
    //for (var i in elements) { 
    var el_length = elements.length; 
    for (var i=0; i<el_length; i++) { 
     if (parseInt(elements[i].innerHTML) == lineNumbers[ln]) { 
     var badThing = "yes"; 
     for (var nextElement = elements[i].next(); 
      nextElement.className != '.no'; nextElement = elements[i].next()) { 
      if (nextElement.innerHTML == stringObj) { 
      badThing = "no"; 
      nextElement.effect('highlight', {}, 'slow'); 
      scrollIntoView(nextElement); 
      } 
     } 
     if (badThing == "yes") alert("Didn't find the object"); 
     } 
    } 
    } 
} 

Mais dans Chrome, il produit l'erreur « Uncaught TypeError: 'highlightElement' Propriété d'objet [objectDOMWindow] n'est pas une fonction ". Comment changer l'expression pour la rendre exécutable dans Chrome? Merci

+2

Pourriez-vous également signaler le fonction sur cette machine? – GolezTrol

+0

Comment déclarez-vous la fonction? Comme une propriété de la trame (par exemple 'window.highlightElements = function() {...};') ou juste comme fonction (par exemple 'function highlightElements() {...}') –

+0

à GolezTrol: J'ai mis à jour ma réponse . à Karl Nicoll: Oui, juste comme fonction. – megas

Répondre

1

Assurez-vous que les deux cadres sont sous le même domaine et protocole. Chome bloque l'accès javascript d'images à une autre si les domaines/protocoles ne correspondent pas. Si vous travaillez localement, et non sous un domaine local (l'URL est quelque chose comme file: /// C: /etc/etc.html), cela ne fonctionnera pas non plus.

Questions connexes