ecinc-cloud-mappaio 9.6.156 → 9.6.157
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ecmappaio.common.js +24 -1
- package/lib/ecmappaio.umd.js +24 -1
- package/lib/ecmappaio.umd.min.js +1 -1
- package/package.json +1 -1
package/lib/ecmappaio.common.js
CHANGED
|
@@ -69017,7 +69017,7 @@ function escapedHtml(htmlStr) {
|
|
|
69017
69017
|
}
|
|
69018
69018
|
|
|
69019
69019
|
// 1. 基本转义
|
|
69020
|
-
var basic = htmlStr
|
|
69020
|
+
var basic = escapeHtmlExcludingTags(htmlStr);
|
|
69021
69021
|
|
|
69022
69022
|
// 2. 特殊危险模式处理
|
|
69023
69023
|
var patterns = [
|
|
@@ -69090,6 +69090,29 @@ function escapedHtml(htmlStr) {
|
|
|
69090
69090
|
});
|
|
69091
69091
|
return result;
|
|
69092
69092
|
}
|
|
69093
|
+
function escapeHtmlExcludingTags(htmlStr) {
|
|
69094
|
+
// 1. 定义要排除的标签及其占位符,注意顺序:先匹配更长的标签
|
|
69095
|
+
var placeholderMap = {
|
|
69096
|
+
'<br/>': '__TAG_BR_SLASH__',
|
|
69097
|
+
'<br>': '__TAG_BR__',
|
|
69098
|
+
'<p>': '__TAG_P__'
|
|
69099
|
+
};
|
|
69100
|
+
|
|
69101
|
+
// 2. 保护标签:用占位符替换这些标签
|
|
69102
|
+
var protectedHtml = htmlStr.replace(/(<br\/>|<br>|<p>)/g, function (match) {
|
|
69103
|
+
return placeholderMap[match];
|
|
69104
|
+
});
|
|
69105
|
+
|
|
69106
|
+
// 3. 执行常规HTML转义
|
|
69107
|
+
var escaped = protectedHtml.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g, '/').replace(/`/g, '`');
|
|
69108
|
+
|
|
69109
|
+
// 4. 恢复标签:将占位符替换回原始标签
|
|
69110
|
+
Object.keys(placeholderMap).forEach(function (tag) {
|
|
69111
|
+
var placeholder = placeholderMap[tag];
|
|
69112
|
+
escaped = escaped.replace(new RegExp(placeholder, 'g'), tag);
|
|
69113
|
+
});
|
|
69114
|
+
return escaped;
|
|
69115
|
+
}
|
|
69093
69116
|
external_commonjs_vue_commonjs2_vue_root_Vue_default().directive('escaped-html', {
|
|
69094
69117
|
inserted: function inserted(el, binding, vnode) {
|
|
69095
69118
|
el.innerHTML = escapedHtml(binding.value);
|
package/lib/ecmappaio.umd.js
CHANGED
|
@@ -69027,7 +69027,7 @@ function escapedHtml(htmlStr) {
|
|
|
69027
69027
|
}
|
|
69028
69028
|
|
|
69029
69029
|
// 1. 基本转义
|
|
69030
|
-
var basic = htmlStr
|
|
69030
|
+
var basic = escapeHtmlExcludingTags(htmlStr);
|
|
69031
69031
|
|
|
69032
69032
|
// 2. 特殊危险模式处理
|
|
69033
69033
|
var patterns = [
|
|
@@ -69100,6 +69100,29 @@ function escapedHtml(htmlStr) {
|
|
|
69100
69100
|
});
|
|
69101
69101
|
return result;
|
|
69102
69102
|
}
|
|
69103
|
+
function escapeHtmlExcludingTags(htmlStr) {
|
|
69104
|
+
// 1. 定义要排除的标签及其占位符,注意顺序:先匹配更长的标签
|
|
69105
|
+
var placeholderMap = {
|
|
69106
|
+
'<br/>': '__TAG_BR_SLASH__',
|
|
69107
|
+
'<br>': '__TAG_BR__',
|
|
69108
|
+
'<p>': '__TAG_P__'
|
|
69109
|
+
};
|
|
69110
|
+
|
|
69111
|
+
// 2. 保护标签:用占位符替换这些标签
|
|
69112
|
+
var protectedHtml = htmlStr.replace(/(<br\/>|<br>|<p>)/g, function (match) {
|
|
69113
|
+
return placeholderMap[match];
|
|
69114
|
+
});
|
|
69115
|
+
|
|
69116
|
+
// 3. 执行常规HTML转义
|
|
69117
|
+
var escaped = protectedHtml.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g, '/').replace(/`/g, '`');
|
|
69118
|
+
|
|
69119
|
+
// 4. 恢复标签:将占位符替换回原始标签
|
|
69120
|
+
Object.keys(placeholderMap).forEach(function (tag) {
|
|
69121
|
+
var placeholder = placeholderMap[tag];
|
|
69122
|
+
escaped = escaped.replace(new RegExp(placeholder, 'g'), tag);
|
|
69123
|
+
});
|
|
69124
|
+
return escaped;
|
|
69125
|
+
}
|
|
69103
69126
|
external_commonjs_vue_commonjs2_vue_root_Vue_default().directive('escaped-html', {
|
|
69104
69127
|
inserted: function inserted(el, binding, vnode) {
|
|
69105
69128
|
el.innerHTML = escapedHtml(binding.value);
|