| 添加X-Cache Header |
@@ -12226,17 +12249,39 @@ Vue.component("keyword", {
if (word == null) {
word = ""
} else {
- word = word.replace(/\)/, "\\)")
- word = word.replace(/\(/, "\\(")
- word = word.replace(/\+/, "\\+")
- word = word.replace(/\^/, "\\^")
- word = word.replace(/\$/, "\\$")
+ word = word.replace(/\)/g, "\\)")
+ word = word.replace(/\(/g, "\\(")
+ word = word.replace(/\+/g, "\\+")
+ word = word.replace(/\^/g, "\\^")
+ word = word.replace(/\$/g, "\\$")
+ word = word.replace(/\?/, "\\?")
+ word = word.replace(/\*/, "\\*")
+ word = word.replace(/\[/, "\\[")
+ word = word.replace(/{/, "\\{")
+ word = word.replace(/\./, "\\.")
}
let slot = this.$slots["default"][0]
- let text = this.encodeHTML(slot.text)
+ let text = slot.text
if (word.length > 0) {
- text = text.replace(new RegExp("(" + word + ")", "ig"), "$1")
+ let that = this
+ let m = [] // replacement => tmp
+ let tmpIndex = 0
+ text = text.replaceAll(new RegExp("(" + word + ")", "ig"), function (replacement) {
+ tmpIndex++
+ let s = "" + that.encodeHTML(replacement) + ""
+ let tmpKey = "$TMP__KEY__" + tmpIndex.toString() + "$"
+ m.push([tmpKey, s])
+ return tmpKey
+ })
+ text = this.encodeHTML(text)
+
+ m.forEach(function (r) {
+ text = text.replace(r[0], r[1])
+ })
+
+ } else {
+ text = this.encodeHTML(text)
}
return {
diff --git a/web/public/js/components/server/http-cache-ref-box.js b/web/public/js/components/server/http-cache-ref-box.js
index 8efd1950..e8a2d82e 100644
--- a/web/public/js/components/server/http-cache-ref-box.js
+++ b/web/public/js/components/server/http-cache-ref-box.js
@@ -20,6 +20,7 @@ Vue.component("http-cache-ref-box", {
enableRequestCachePragma: false,
conds: null,
allowChunkedEncoding: true,
+ allowPartialContent: false,
isReverse: this.vIsReverse,
methods: [],
expiresTime: {
@@ -147,7 +148,14 @@ Vue.component("http-cache-ref-box", {
| 支持分片内容 |
-
+
+ |
+
+