2010-02-15 3 views
0

Dans IE8, je suis confronté à un problème lors de l'appel d'une méthode via un objet.Obtention d'une erreur inconnue Dans IE8

Voici l'extrait de code

gen.js

function getmystring() 
{ 

} 

function DispString() 
{ 
    var = this.getmystring(); // while executing this line, we are getting Unknown error 
    ... 
    ... 
    ... 
} 

...... 
...... 
...... 



var mystring_Def = { 
global: { 
    cur: null 
}, 
//constructor defs 
constructor: { 
... 
... 
... 
}, 
//properties defs which contains getmystring & DispString 
... 
... 
... 
} 
}; 

mon html contient le code suivant snippet

<HTML> 
<HEAD> 
... 
... 
... 

<SCRIPT LANGUAGE="Javascript" SRC="gen.js"> </SCRIPT> 
<SCRIPT LANGUAGE="Javascript"> 
var abc = mystring_Def.global.cur; // mystring_Def.global.cur is intialized before calling this page 
document.writeln(DispString()); 

... 
... 
... 
</BODY> 
</HTML> 

mystring_Def est initialisé dans un autre script.

Je reçois "exception inconnue" lors de l'appel this.getmystring().

Si appeler la méthode getmystring() dans une page html, cela fonctionne très bien, mais j'obtiens erreur quand j'appelle DispString().

J'ai vérifié si cela est construit ou non en utilisant typeof, et il montre comme fonction. En utilisant this, je peux accéder à d'autres propriétés à l'exception des objets de fonction.

Le code ci-dessus fonctionne correctement dans IE6 et IE7, mais échoue dans IE8.

Il serait souhaitable que quelqu'un fournisse des pointeurs pour résoudre le problème ci-dessus.

+0

Je suis confus; qu'est-ce que vous attendez que la variable 'this' référence dans cette fonction? Je soupçonne que c'est la racine du problème, ou du moins un facteur important. – Pointy

+1

Il serait vraiment utile si vous pouviez poster un lien de repro ou un http://sscce.org/. –

+0

1. Suppression de tout le code rend assez difficile à déboguer. 2. Nommez cette variable dans DispString. 3. Ne placez pas d'accolades sur une nouvelle ligne comme celle-ci. –

Répondre

0

Essayez de transmettre cela comme paramètre. cela créera une référence à l'objet actuel. Problème que je pense être, cela ne fait référence à rien alors que this.getmystring() est appelée.