Hi Paul and Quentin,

I think the real problem is

sdf=sdf.replace(/\|/g,"\n|");

The above regular expression is replacing | with n|. To replace | with the \n|, 
the expression needs to be:

sdf=sdf.replace(/\|/g,"\\n|");

Otis
--
Otis Rothenberger
[email protected]
http://chemagic.com




On Feb 7, 2013, at 12:54 PM, Paul Pillot wrote:

> You can prevent eval() in your code with : 
> document[applet_name].Loadinline(sdf)
> 
> Paul
> 
> Le 7 févr. 2013 à 17:42, Otis Rothenberger a écrit :
> 
>> Quentin,
>> 
>> I'm not fully following your use of pipes, but I think one error is the 
>> following:
>> 
>> sdf=sdf.replace(/\|/g,"\n|");
>> 
>> I think you need //n not just /n. 
>> 
>> Otis
>> 
>> --
>> Otis Rothenberger
>> [email protected]
>> http://chemagic.com
>> 
>> 
>> 
>> 
>> On Feb 7, 2013, at 11:31 AM, Quentin Delettre wrote:
>> 
>>> Dear jmol user list,
>>> 
>>> I have a problem.
>>> 
>>> In my project, i retrieve molecule in sdf from my database via ajax 
>>> calls + php. The molecule data is returned as json.
>>> 
>>> I am doing this because i want to load the molecules only if they are in 
>>> the browser view, like lazy loading. Ajax calls are made, no problem 
>>> here and the visibility question is already solved.
>>> 
>>> So i have the possible case to have multiple applets loaded without 
>>> content and then when they are displayed to the user, the molecule(s) 
>>> has to be loaded.
>>> 
>>> Here is the code :
>>> 
>>>     $.ajax({
>>>                         "dataType": 'json',
>>>                         "type": "GET",
>>>                         "url": 
>>> Routing.generate(myBundle_molstructure_ajax', {
>>>                             "Id": id
>>>                         }),
>>>                         "success": function (dataStr) {
>>>                             // get sdf and prepare
>>> sdf="|"+String(dataStr['sdf']).replace(/\|/g,"");
>>>                             sdf=sdf.replace(/\r\n/g,"|");
>>>                             sdf=sdf.replace(/\n/g,"|");
>>>                             sdf=sdf.replace(/\r/g,"|");
>>>                             sdf=sdf.replace(/\|/g,"\n|");
>>> 
>>>                             eval("document." + applet_name + 
>>> '.LoadInline(\"' + sdf + '\");');
>>> 
>>>                         }
>>>     });
>>> 
>>> The error i got is :
>>> 
>>> SyntaxError: unterminated string literal at
>>>     document.jmol2.LoadInline("
>>> 
>>> Is there something i can do ?
>>> I don't think my inline file preparation is wrong but who knows...
>>> 
>>> Thanks
>>> 
>>> ------------------------------------------------------------------------------
>>> Free Next-Gen Firewall Hardware Offer
>>> Buy your Sophos next-gen firewall before the end March 2013 
>>> and get the hardware for free! Learn more.
>>> http://p.sf.net/sfu/sophos-d2d-feb
>>> _______________________________________________
>>> Jmol-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/jmol-users
>> 
>> ------------------------------------------------------------------------------
>> Free Next-Gen Firewall Hardware Offer
>> Buy your Sophos next-gen firewall before the end March 2013 
>> and get the hardware for free! Learn more.
>> http://p.sf.net/sfu/sophos-d2d-feb_______________________________________________
>> Jmol-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/jmol-users
> 
> ------------------------------------------------------------------------------
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013 
> and get the hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb_______________________________________________
> Jmol-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jmol-users

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Jmol-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to