unreliable data from XML to DHTML
Posted: Mon Oct 21, 2019 6:56 am
Hi Clifton,
This latest problem has been driving me nuts for several days now! I am using an HTML/Javascript encryption system http://www.vincentcheung.ca/jsencryption/ to create security codes for my Médiacours exercise files. In my original VB.NET program I load this into a webBrowser object which is an embedded version of IE. I chose to create my codes this way so that they would be compatible with both versions of my program. There have never problems with the VB.NET version which I find surprising as it is pretty clunky! The HTML file is an invisible resource that I copy onto the disk when required. I then navigate to this local file in the webBrowser. VB.NET allows you to reference elements of the loaded html so I can manipulate the form invisibly to encrypt and decrypt. When I have finished I simply delete the HTML file to avoid anyone discovering how the system works.
I thought using this in the DHTML version would be easier as it uses HTML and javascript but no such luck so far. I have put this code in my "sharedActions" XML file.
The problem is getting the encypted strings from the XML function to the Toolbook part of the program intact. If I use return to send them they always arrive corrupted. There are spaces and characters missing which renders them useless. It's slightly better if I use pgTBObjectSet to put them into the text of a TB field but this is also unreliable. I have tried putting the 3 codes into an array but this fails. I have also tried writing the string to a cookie but the string is never written correctly. However if I use the alert in the code above to manually copy the code and paste it into the destination file it always works.
Here is a picture of what I get before the 2 pgReplace lines.
And here is a picture of a correct result after the 2 pgReplace lines.
Unfortunately even if I repeat the pgReplace lines in the subsequent TB actions sequence I rarely get the desired result although it must be said that from time to time it works!
What can I do to make sure the strings arrive intact so that I can write them into the file correctly? I'd be most grateful if you have any suggestions. Thanks for your time.
John
This latest problem has been driving me nuts for several days now! I am using an HTML/Javascript encryption system http://www.vincentcheung.ca/jsencryption/ to create security codes for my Médiacours exercise files. In my original VB.NET program I load this into a webBrowser object which is an embedded version of IE. I chose to create my codes this way so that they would be compatible with both versions of my program. There have never problems with the VB.NET version which I find surprising as it is pretty clunky! The HTML file is an invisible resource that I copy onto the disk when required. I then navigate to this local file in the webBrowser. VB.NET allows you to reference elements of the loaded html so I can manipulate the form invisibly to encrypt and decrypt. When I have finished I simply delete the HTML file to avoid anyone discovering how the system works.
I thought using this in the DHTML version would be easier as it uses HTML and javascript but no such luck so far. I have put this code in my "sharedActions" XML file.
- Code: Select all
<function name="createDistributionCode" event="" params="">
<![CDATA[
var mySchool = this.myArray[4];
var exName = this.myArray[2];
var A = tbfunction_pgExecuteRemote("response", "encryptMyText", mySchool + ",someKey");
var codeKey;
if (mySchool.length > 4)
{
var ADetail = [];
ADetail = Array.from(mySchool);
codeKey = ADetail[3] + ADetail[4] + ADetail[1] + ADetail[0] + ADetail[2];
}
else
{
codeKey = "anotherKey";
}
var B = tbfunction_pgExecuteRemote("response", "encryptMyText", exName + "," + codeKey);
if (exName.length > 3)
{
codeKey = exName.substring(0, 4);
}
else
{
var BDetail = [];
BDetail = Array.from(exName);
codeKey = BDetail[0] + "N" + BDetail[0] + "a";
}
var C = tbfunction_pgExecuteRemote("response", "encryptMyText", exName + "," + codeKey);
var returnValue = "***§" + A + "§" + B + "§" + C;
//Here returnValue is always incorrect as it contains line breaks!!
returnValue = tbfunction_pgReplace("/^\s+|\s+$/", "", returnValue, true);
returnValue = tbfunction_pgReplace("\n", "", returnValue, true);
alert(returnValue); //The value alerted here has always been correct!!
tbfunction_pgTBObjSet("codeBar", "text", returnValue); //This has sometimes worked but is not reliable!!
// return returnValue This has never worked!!
]]>
</function>
The problem is getting the encypted strings from the XML function to the Toolbook part of the program intact. If I use return to send them they always arrive corrupted. There are spaces and characters missing which renders them useless. It's slightly better if I use pgTBObjectSet to put them into the text of a TB field but this is also unreliable. I have tried putting the 3 codes into an array but this fails. I have also tried writing the string to a cookie but the string is never written correctly. However if I use the alert in the code above to manually copy the code and paste it into the destination file it always works.
Here is a picture of what I get before the 2 pgReplace lines.
And here is a picture of a correct result after the 2 pgReplace lines.
Unfortunately even if I repeat the pgReplace lines in the subsequent TB actions sequence I rarely get the desired result although it must be said that from time to time it works!
What can I do to make sure the strings arrive intact so that I can write them into the file correctly? I'd be most grateful if you have any suggestions. Thanks for your time.
John