Subj : Re: How to use scripts to create persistent objects? To : netscape.public.mozilla.jseng From : Jt Date : Tue Sep 14 2004 02:21 pm Wayne wrote: > After days of beating my head against the wall thinking I was using > the library incorrectly, it turned out to be a unrelated, bonehead > mistake on my part. > > I apologize if anyone wasted any time on this posting. > > Sincerely, > > Wayne > > wayne@lamontmarketing.com (Wayne) wrote in message news:... > >>According to the JavaScript C Engine Embedder's Guide: >> >>"NOTE: You can also use scripts to create persistent objects, too." >> >>However, I am unable to figure out how to accomplish this (and was >>unable to find previous newsgroup postings explaining this process >>after doing a *very* extensive search). >> >>JS_EvaluateScript() on the following JS: >> >>var m = new MyObject( 5 ); >> >>function MyObject( num ) >>{ >> this.num = num; >>} >> >>alert( 'm.num = ' + m.num ); >> >>document.write( '
' ); >>var o = document.all[ "m1" ]; >>o.m = m; >>alert( 'o.m.num = ' + o.m.num ); >>var p = document.all[ "m1" ]; >>alert( 'p.m.num = ' + p.m.num ); >> >>Each alert( X.m.num ) prints "5" as expected. Then, we immediately do >>another JS_EvaluateScript() (same JSContext & Runtime) on the >>following JS: >> >>var q = document.all[ "m1" ]; >>alert( 'q.m.num = ' + q.m.num ); >> >>but instead of printing "5", we get "TypeError: q.m has no properties >>line 0". >> >>It may not be possible to answer without knowing all the C code behind >>this, but why does the technique of setting a property in the object >>held in the document.all array at "m1" appear to work within one >>script execution, but not subsequent script executions using >>essentially the same code? (By the way, replacing the second JS code >>segment with "alert( 'm.num = ' + m.num );" does output "5".) >> >>Any help and guidance would be most appreciated. >> >>Thank you, >> >>Wayne hi wayne, we are did the same mistake ;) especially on time contraints situation. have a nice day :D best regards. James .