mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 14:41:29 +01:00
* Chrome 94.0.4606.54: fix CSP error clicking on sidebox menu
Chrome 94 returns all but first single quote "'" in a href attribute as "%27" :(
This commit is contained in:
parent
d518a2b118
commit
163c7287e6
@ -143,14 +143,15 @@ import './slider.js';
|
||||
var href_regexp = /^javascript:([^\(]+)\((.*)?\);?$/;
|
||||
jQuery('#egw_fw_topmenu_items,#egw_fw_topmenu_info_items,#egw_fw_sidemenu,#egw_fw_footer').on('click','a[href^="javascript:"]',function(ev){
|
||||
ev.stopPropagation(); // do NOT execute regular event, as it will violate CSP, when handler does NOT return false
|
||||
var matches = this.href.match(href_regexp);
|
||||
// fix for Chrome 94.0.4606.54 returning all but first single quote "'" in href as "%27" :(
|
||||
var matches = this.href.replace(/%27/g, "'").match(href_regexp);
|
||||
var args = [];
|
||||
if (matches.length > 1 && matches[2] !== undefined)
|
||||
{
|
||||
try {
|
||||
args = JSON.parse('['+matches[2]+']');
|
||||
}
|
||||
catch(e) { // deal with '-encloded strings (JSON allows only ")
|
||||
catch(e) { // deal with '-enclosed strings (JSON allows only ")
|
||||
args = JSON.parse('['+matches[2].replace(/','/g, '","').replace(/((^|,)'|'(,|$))/g, '$2"$3')+']');
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user