选中文本,对比失败(文本位于框外)

BUG反馈 · 208 次浏览
用户5396077354... 创建于 19天21小时前

出现bug了


回复内容
Anlv 14天11小时前
#1

我也碰到了,感觉跟浏览器或者什么系统更新有关

IDongYou 13天16小时前
#2

字节跳动的静态资源公共库挂了导致的, 由于黑产原因下线的https://cdn.bytedance.com/

解决办法:


可以在这个步骤中改成这样

$$<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />

<head>
    <meta charset="UTF-8">
    <title>文本比对</title>

    <script>
    function loadScriptWithFallback(primary, fallback) {
        return new Promise((resolve, reject) => {
            const script = document.createElement('script');
            script.src = primary;
            script.onload = () => resolve();
            script.onerror = () => {
                console.warn(`JS 加载失败,切换到备用源: ${fallback}`);
                const fallbackScript = document.createElement('script');
                fallbackScript.src = fallback;
                fallbackScript.onload = () => resolve();
                fallbackScript.onerror = () => reject(new Error(`两个地址都加载失败: ${primary}, ${fallback}`));
                document.head.appendChild(fallbackScript);
            };
            document.head.appendChild(script);
        });
    }

    function loadCSSWithFallback(primary, fallback) {
        return new Promise((resolve) => {
            const link = document.createElement('link');
            link.rel = 'stylesheet';
            link.href = primary;
            link.onload = () => resolve();
            link.onerror = () => {
                console.warn(`CSS 加载失败,切换到备用源: ${fallback}`);
                link.href = fallback;
                resolve();
            };
            document.head.appendChild(link);
        });
    }

    async function loadAll() {
        await loadCSSWithFallback(
            "https://cdn.bootcdn.net/ajax/libs/codemirror/5.36.0/codemirror.min.css",
            "https://fastly.jsdelivr.net/npm/codemirror@5.36.0/lib/codemirror.min.css"
        );
        await loadCSSWithFallback(
            "https://cdn.bootcdn.net/ajax/libs/codemirror/5.36.0/addon/merge/merge.min.css",
            "https://fastly.jsdelivr.net/npm/codemirror@5.36.0/addon/merge/merge.min.css"
        );

        await loadScriptWithFallback(
            "https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js",
            "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"
        );

        await loadScriptWithFallback(
            "https://cdn.jsdelivr.net/gh/google/diff-match-patch@master/javascript/diff_match_patch.js"
        );

        await loadScriptWithFallback(
            "https://cdn.bootcdn.net/ajax/libs/codemirror/5.36.0/codemirror.min.js",
            "https://fastly.jsdelivr.net/npm/codemirror@5.36.0/lib/codemirror.min.js"
        );
        await loadScriptWithFallback(
            "https://cdn.bootcdn.net/ajax/libs/codemirror/5.36.0/addon/merge/merge.min.js",
            "https://fastly.jsdelivr.net/npm/codemirror@5.36.0/addon/merge/merge.min.js"
        );

        initMergeView();
    }

    function initMergeView() {
         var leftValue = "{对比1.Replace("\\", "\\\\").Replace("\"","\\\"").Replace("\r\n", "\\n").Replace("\n", "\\n")}";
        var rightValue = "{对比2.Replace("\\", "\\\\").Replace("\"","\\\"").Replace("\r\n", "\\n").Replace("\n", "\\n")}";
        var t = document.getElementById("code_view");
        CodeMirror.MergeView(t, {
            value: leftValue,
            lineWrapping: true,
            origLeft: null,
            orig: rightValue,
            lineNumbers: true,
            mode: "text/plain",
            highlightDifferences: true,
            connect: null,
            collapseIdentical: false,
            allowEditingOriginals: true
        })

    }

    loadAll().catch(err => console.error(err));
    </script>
</head>

<body>
<style>
    .CodeMirror-merge, .CodeMirror-merge .CodeMirror {
        height: 97vh;
    }
    </style>
    <div id="code_view"></div>
</body>
</html>

IDongYou 最后更新于 11天15小时前
秦王绕的柱 回复 IDongYou 13天8小时前 :

替换后文字错位修复了,就是文本对比功能不行了,大佬这是为啥

IDongYou 回复 秦王绕的柱 13天0小时前 :

那可能要把其他的也替换了, 你试试我的完整代码

秦王绕的柱 回复 IDongYou 12天22小时前 :
感谢大佬!
IDongYou 回复 秦王绕的柱 11天15小时前 :

上次那个完整代码, 对比视图好像只会显示一半, 我又修复了一下

回复主贴