Looks like you uncovered a bug in the logic used to minimize the payload of the getvar/setvar. Basically I am substituting out the quotes which is serialized with "e with another character inside the clientapi logic. I believe I am not doing this substitution correctly in all cases. If you wouldn't mind trying to replace out the setVar found in the dnn.js file with this newer version.
__dnn.prototype.setVar = function(sKey, sVal)
{
if (this.vars == null)
this.getVars();
this.vars[sKey] = sVal;
var oCtl = dnn.dom.getById('__dnnVariable');
if (oCtl == null)
{
oCtl = dnn.dom.createElement('INPUT');
oCtl.type = 'hidden';
oCtl.id = '__dnnVariable';
dnn.dom.appendChild(dnn.dom.getByTagName("body")[0], oCtl);
}
var sVals = '';
var sKey;
var re = eval('/"/g');
for (sKey in this.vars)
{
sVals += ROW_DELIMITER + sKey + COL_DELIMITER + this.vars[sKey].replace(re, QUOTE_REPLACEMENT);
}
oCtl.value = sVals;
return true;
}
Please let me know how this works.