Support Article
Firefox browser hangs on opening workbasket instances on portal
Summary
The Firefox browser hangs while opening workbasket instances on the portal.
Error Messages
Json.parse errors.
Steps to Reproduce
- Open a Firefox browser session
- Open the Case Manager portal after logging in to the Pega application
- In the work queue list, click a workbasket definition to see its instances on the list. The Firefox browser hangs
Root Cause
This is due to an issue with parsing the Turkish characters in the change tracker response specifically for Firefox browser.
Resolution
Perform the following local-change:Add the below script in the UserWorkForm:
<script>
pega.ui.ChangeTracker.prototype.parseForChangeTrackerDiv = function(newStream, declareExpression) {
var ctJSON;
var searchStartsAt = 0;
if(!declareExpression) {
var isChromeOrSafariOrFF = (navigator.userAgent.indexOf("Chrome/") >= 0) || (navigator.userAgent.indexOf("Safari/")>= 0) || (navigator.userAgent.indexOf("Firefox/")>= 0) ? true : false;
if(isChromeOrSafariOrFF)
{
String.prototype.changeToLower = function(){
var string = this;
var letters = { "İ": "i", "Ş": "ş", "Ğ": "ğ", "Ü": "ü", "Ö": "ö", "Ç": "ç" };
string = string.replace(/(([İŞĞÜÇÖ]))/g, function(letter){ return letters[letter]; })
return string.toLowerCase();
}
var lowerCaseNewStream = newStream.changeToLower();
}
else
var lowerCaseNewStream = newStream.toLowerCase();
if(pega.util.Event.isIE) {
var ctDivBegin1 = "<div style=\"display: none\" id=\"ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + "\">";
} else {
var ctDivBegin1 = "<div style=\"display:none\" id=\"ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + "\">";
}
while(true) {
var ctDivBegin = "<div style='display:none' id='ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + "'>";
var len = ctDivBegin.length;
var ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin, searchStartsAt);
if(ctDivStartsAt < 0) {
ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
len = ctDivBegin1.length;
if(ctDivStartsAt < 0) {
ctDivBegin1 = "<div style=\"display: none\" id=ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + ">";
len = ctDivBegin1.length;
ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
if(ctDivStartsAt < 0){
ctDivBegin1 = "<div id=ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + " style=\"display: none\">";
len = ctDivBegin1.length;
ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
if(ctDivStartsAt < 0){
ctDivBegin1 = '<div id="ajaxct_' + this.id +"_"+this.threadName.toLowerCase() + '" style="display: none;">';
len = ctDivBegin1.length;
ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
if(ctDivStartsAt < 0){
ctDivBegin1 = '<div style="display: none;" id="ajaxct_'+ this.id +"_"+this.threadName.toLowerCase() +'">';
len = ctDivBegin1.length;
ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
if(ctDivStartsAt < 0){
ctDivBegin1 = '<div id="ajaxct_' + this.id +"_"+this.threadName.toLowerCase() + '" style="display:none">';
len = ctDivBegin1.length;
ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
}
}
}
}
if(ctDivStartsAt < 0) return;
}
}
var ctDivEndsAt = lowerCaseNewStream.indexOf("</div>", ctDivStartsAt);
if(ctDivEndsAt < ctDivStartsAt) {
return;
}
ctJSON = newStream.substring(ctDivStartsAt + len, ctDivEndsAt);
this.mergeChangesToMasterList(ctJSON);
searchStartsAt = ctDivEndsAt;
}
} else {
ctJSON = newStream;
this.mergeChangesToMasterList(ctJSON);
if(this.changedPropertiesList.length > 0) {
pega.u.d.evaluateClientConditions('TCL');
}
}
}
</script>
Published January 23, 2020 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.