花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 345|回复: 177

xdEditor初稿源码

[复制链接]
  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2023-12-9 09:40 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    本帖最后由 马黑黑 于 2023-12-9 09:48 编辑

    一、HTML(xd_editor.html)
    1. <!DOCTYPE html>
    2. <html lang="zh">
    3. <head>
    4. <meta charset="utf-8">
    5. <title>xdEditor</title>
    6. <link rel="stylesheet" type="text/css" href="./xd_editor.css">
    7. </head>
    8. <body>

    9. <h2 class="mid">xdEditor</h2>
    10. <form id="xdForm" name="xdForm" action="./save.php" method="post">
    11.         <textarea id="elm" name="content"></textarea>
    12. </form>

    13. <script src="./xd_editor.js"></script>

    14. </body>
    15. </html>
    复制代码


    【说明】


    (一)上述代码保存为 xd_editor.html 文档作为测试之用,或根据需要将核心代码植入自己的文档中;
    (二)form是页面中的第一个form表单,id与name同名,可随意命名。action根据需要设置;
    (三)上述代码要求所引用的 xd_editor.css 和 xd_editor.js 与 xd_editor.html 同放在一个目录下,也可根据需要另外存放(需要修改引用路径)。

    评分

    参与人数 2威望 +70 金钱 +140 经验 +70 收起 理由
    幸运草 + 20 + 40 + 20 赞一个!
    红影 + 50 + 100 + 50 赞一个!

    查看全部评分

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 09:42 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-12-9 09:44 编辑

    二、CSS(xd_editor.css)

    1. @charset "utf-8";

    2. a {
    3.         text-decoration: none;
    4.         color: #3f48cc;
    5. }

    6. a:hover, a:visited:hover {
    7.         color: #ff0000;
    8. }

    9. a:visited {
    10.         color: #005344;
    11. }

    12. img {
    13.         border: 0;
    14. }

    15. #ed_outer {
    16.         width: 1024px;
    17.         height: 640px;
    18.         border-radius: 6px;
    19.         box-shadow: 3px 6px 12px darkgray;
    20.         margin: 20px auto;
    21.         position: relative;
    22.         display: flex;
    23.         flex-direction: column;
    24. }

    25. #ed_top, #ed_foot {
    26.         border: 1px solid gray;
    27.         border-radius: 6px;
    28.         background: #f0f0f0;
    29.         padding: 8px;
    30.         display: flex;
    31.         gap: 0 4px;
    32.         align-items: center;
    33. }

    34. #ed_top {
    35.         border-radius:  6px 6px 0 0;
    36.         border-bottom-color: transparent;
    37. }

    38. #ed_edit {
    39.         flex-grow: 1;
    40.         border: 1px solid gray;
    41.         box-sizing: border-box;
    42.         position: relative;
    43. }

    44. #ed_foot {
    45.         border-radius: 0 0 6px 6px;
    46.         border-top-color: transparent;
    47. }

    48. #elm, #rDiv {
    49.         width: 100%;
    50.         height: 100%;
    51.         padding: 8px;
    52.         border: none;
    53.         outline: none;
    54.         overflow: hidden auto;
    55.         resize: none;
    56.         box-sizing: border-box;
    57.         word-break: break-word;
    58.         tab-size: 4;
    59.         position: absolute;
    60. }

    61. #elm {
    62.         font: normal 16px/20px Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
    63.         background: #f8f8dc;
    64.         display: none;
    65. }

    66. #rDiv > p {
    67.         margin: 8px 0;
    68.         padding: 0;
    69. }
    70. #rDiv > p:nth-of-type(1), #insertBox  p:nth-of-type(1) {
    71.         margin: 0 0;
    72. }
    73. .btn {
    74.         width: 22px;
    75.         height: 22px;
    76.         border: none;
    77.         outline: none;
    78.         padding: 0;
    79.         cursor: pointer;
    80. }

    81. .btn:hover {
    82.         border: 1px solid gray;
    83. }

    84. #font_color, #bg_color, #edlist {
    85.         width: 20px;
    86.         height: 20px;
    87.         box-sizing: border-box;
    88.         display: flex;
    89.         align-items: center;
    90.         cursor: pointer;
    91. }

    92. #font_color:hover #forecolor, #bg_color:hover #backcolor {
    93.         opacity: 1;
    94. }

    95. #forecolor, #backcolor {
    96.         width: 100%;
    97.         height: 100%;
    98.         border: none;
    99.         outline: none;
    100.         padding: 0;
    101.         margin: 0;
    102.         opacity: 0;
    103. }

    104. #orderlist {
    105.         width: 20px;
    106.         opacity: 0;
    107. }

    108. #edlist select option:nth-of-type(1) {
    109.         display: none;
    110. }

    111. #sub {
    112.         background: lightblue;
    113.         border-radius: 6px;
    114.         border: 1px solid gray;
    115.         outline: none;
    116.         cursor: pointer;
    117. }

    118. #sub:hover {
    119.         box-shadow: 2px 2px 4px gray;
    120.         color: red;
    121. }

    122. #insertBox {
    123.         position: absolute;
    124.         padding: 6px;
    125.         box-shadow: 2px 2px 4px black;
    126.         background: #fefefe;
    127.         display: none;
    128. }

    129. #insertBox > p { margin: 6px; }

    130. .grow1 {
    131.         flex-grow: 1;
    132.         text-align: right;
    133. }

    134. .mid { text-align: center; }

    135. .right { text-align: right; }

    136. .bold { font-weight: bold; }
    复制代码


    【说明】

    作为初稿,代码还不够完善,很多地方还需斟酌

    评分

    参与人数 1威望 +50 金钱 +100 经验 +50 收起 理由
    红影 + 50 + 100 + 50 赞一个!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 09:44 | 显示全部楼层
    三、JS(xd_editor.js)

    1. (function() {

    2.         let xdForm = document.querySelector('form');
    3.         if(!xdForm) return false;
    4.         /* 创建界面 */
    5.         let xdEditor = document.createElement('div');
    6.         let picData = 'data:image/gif;base64,R0lGODlhqAIUAPcAAAAAAP///7l/kZUgU8Ejc/z7/Ly7vLGwsaGgoff1+JkZ63Fxct/f4PDx/qeptL2/ysfJ0w8qpJGr8Y6f0NDY8MfK0yJa4vf5/uTm619tjlldZiJYwi9p5EF341OI8oKm8dHa7NLV2xFSyT5ellZ7u5W6/aPD+6K/9NLi/hBg3hYiNWeW512EwW+SzFJjgMXX9aKxyt3p/ePs+97m8z9opQQGCZSnw6Gvw7rD0d/o9QFh4C5/6KK73LTL66azxa+5xjtpocLY9JOhs7PB0sXS4uLp8mun6XyhyrDG3jRLY0JdeXyXs0BIUJGgr3B4gICIkMzU3Pv8/YWWpuXx/C2Z+HGPqYKRnvD4/w43V5nF5dfb3Zeeodrh5JzX7snx/+zy9ILx/2BwcICQkKCwsGFpZ15+c4rbtMDIwI+Rj+zu7PT19O/w78HCwamqqTa5MBL+AmzYYmalDU1yE5XSG7O0rtvc1eDlr25wVKSljfHvbllZVcbGwt/f28jIx/n1U/31N//4i/rkINbFKvXYEv/50djHaP/tg/TnnNPSzbSVFfrXRrCbT4Z3P8a0cdClFXJbEMS4kT04KeTj4Kp8ItTKtv/IYMifX6uTa/CwUOCcQP758mVNMOzn4cK6sUAwIBoWEst6M7KnoNqOcvPRxv1XK/mRdvxpSLdxY5w4Ks0TEIuKiv7+/uTk5ODg4NfX18zMzLS0tICAgH5+fklJSf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAALQALAAAAACoAhQAAAj/AGkJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqrDghRQoeK2PKnEmzps2bKtXgdDigZ8SeA1AiEkB0gICdSC2m4LMnxZ6IMJNKLflK1sYdWLNq1XoQltevsFwxBPtVrMhFidImWlSR0qlTlKbW5FOxi0K7Blu63PuTqICgPP0C5jhhh8sJA/8KINAzFCK5kBc65QuRR9TIFGtM1DxS1iuBVmlVfQgEyMIdDHc8LQiLFSstrvbAMgBhYevXsWfXVhiLYqNEgvzkyeNHUKJGEt2KEnVqtcUl0KNDh6gFh/Xr1j2G4CFhQosJlw1+/6a4A6/BLqoNpvDC3ssOLykeDtij+G/D+fUHM6zBv3//gilMoBdif+0RClB70LVQKLPM4hxmNLkEH3y0CNgQDwmEd5MWPGiB0WMSgRhSVZ9ZNZpDQDxmWkKogeHiizDSkh5rrrkWWxtqPGjQbTbugaOOBPXWGy2xFGlkkQg54ogfTP7xB5N+KAkRJY38wBwqQEq0RABcdnmDEg5poUUUZJKJwQ8uZOnDmmy2ySZCOEzwQplRvNACDl1VhBViBaE3I0HrtfcehQpNYih+ghk6yUGKIlqUog3tIemkkxZkmWET8MHYHkDNp6BCDc5Sxqc0+UeLqQ2ZyplCZTT4UKCwuv+E2kI8BJDhRCAIIUQVVYCQkH/A/mcQDzvMQlew/CGkKrKrDrQssh2NZlVoKKoookGodaGtGXDAYYa2dv05EI82tlFAjgmRy4or5qJ7kJEgIiLvvPIatIggxAkiiJP6CicIWwRJILAEHxT8QQkQNHJIIbKgAkmWtLTQgkAsJKHQll1yaUMFYDL0A5nW/fCDFhlkAKQPF6Ss8soXTDGFxQXhwEOdH3jgwQcvTAGeQULUhZV5tPjZBZDrYeUeVk4VKtB8khZliSWLGhQ10/T99XTUF2lh2F4TDEWAYj1BTNAeoTqoELMQAbtfDZKeyrbYzr69B39w0xJqKA3BOiF8stL/ymUCPUOUa5kg9JoQvYjPa5AWDsab+LUE0UvL4/UWJDnlkM9UWuUHocYeHG6E7gYc7MkIpAFppJ66FgbgoQoeZhmEuuppsO467O8iEstjRxqJUCLE/fFIJE4O/2QeiRQkgQnMl1AC80QssvAin1DStkEtEME2LUlgoEJCGHe5ShNKlL8QDhjQGcWZLvxw8gUSS0xCCyTUT0IHMiTxYAgTRHFCBx3g0gpWcIIpsGA3A1FFRbTgJz4J7XqAao8E9xIfRtHiEIfo1ABCcQioZW5RGNQgBz14ELUJpAUsqF8GCKIXYgUIEazgVFEIkDmDtKpVszjK2eg2t2Q9pD8QVNb2/9xWN4HQzVlwY1CDysCQQLEnUF2gYA0H4oMuYUAKDxkcnQqXJWb58HCkcggi+ORFS4WnjASRhRrXCBo1qkIVskhDGtdIxzbK4o1xXMjmFOI50IkudKUTl0BmRztXGKANiMwSIVVnSES2IUuPcRzi7BUcJ0WCeH+4pJOKAzCBDMxgCJNeIah3gyAOhAUYaIEKntK9FnwCIeELgCbOsAUxoEEJYtPCxzAQMhyQzAW6MgjKWoACFLyAec0rAf70RxAevOAFAIymzTpgAhwI4UEKXGADH5ilomkFDEUjVEFA2MGnmbODk/jgBctpTkugc4qUesoKSDACISThmgMZkKxguP8pxUzRQnZzEA6naMQjAtEhQCziEYmYqi8OESGtUiLcnChBbVEQbkLIGB+q0BAtkkkGMohCFSCGuSlyyEMQGeOs3IYsyO2gawVt6UDUmLEA0DRjcJypLGoamp3iVBasQEhphrqiztHCDH8UHelMJ7sfWMEFLrDCD2oHAR8BaRSUMMUk4rCIPWCAqlbNSCKaJLxHFM+sT/JD8gbygy4RIQB8ECX1KIFPg7AABCxQAQueQoIkgGAC3zNI+DTxAzbMoAhjCAPEcPADHNAJA+yTapoKMkwUtGwKyfzAMh/UgiholgNd4oDNWDCFkRIkmxVhyh6wQimEpABGL0oBep4otXX/YlAvF60tBm9LQQo2hJ4j2IP+nKM1WbmEBwfqlABqyIPDKLFscDvoQRv60B2uZqFrW5XYyMbEJUqmCxWNYlNSIMiCZFSjK1SIR6MAUpGarIRe/GIzi8UHPqCtIIXZQRn2KxDMDeRS+2Xi5CiXwACwomwInoVrgCoQVRgYwQEt24KDSpCi0mJz9bKwQFDDrW55uFtPKa8VMiAFkUkhA0JYHSyAVApSmMISc4iDHPDw1dqt2CAAyLGOd7zjggDPSU4KRCAGQeQiq5UgbeXSW9sAiVF+gg9E0ACQUNkCLJDgehUDgSoF26UzsIFLV5hCE9pwEGuK7AdCsMKIoYrip+po/5jPRGYJCraCzRKEBVHwAAf2zKU9b2ADUQjuaTFCgEIbWiGv3Qo4/WQYHZETgxR9TwUJ8uhDpAAQmM40ICYdN2HRIgP6YyZBVEupQkuKMaFAaUG2lgIclm1UvwqWKYX4toZet7oGia98CYJDVxNUIK9lj0UldZhfS8FWCUgAqKGakPW2l1eiNkhJOTcQxu1BkpMsyB4mUIZ5BQshWtjvBK79bYOo4sBpmMXf0sCKV8wi3Qem8LnfrW5bCYTd7oa3ggtSmoHs8cIpWjUtWGGGgne4W0EV5A8y8AMoQMGeSWB46m5MEEqQohSUQAQnCiHj1kwcSDwOuY6v9eM/DLnIKP8fxJEHcgMiuJwIMmhDAKgHASL8QMoFaYGWP3HlB7FgBERgwSsJEr4tFCEAV2hADJCwACAJQX3qw8Ca3wy/nIG0mMWsMwqiTQs8d2DPoA0ABzYgAkALOoEXMfSpC52Q18IWnGBoT9IobVtLS3BQnKZFpS+9lU0fJJ4C+UGo61YgGDYmjLTQQoBc0qpJDTTWb/P0Qqa7tlvXLZ4JnTXjRLXfBuFNMmAY9lPIuwdVH0QKCeBDBjBgskoZZL1TCCm0fdBFNCKED4hA/EKYQkZg1VBAigtW5lThClckuGzF3zctiG/8sgkEwcmnsL/7DXAV/XsgK3VNKEJRegoL0gpCEJP/4JNQhTSrIQ0G0JEpSDEKIcgCAqxohBzugCP0Q3La1B7rHwaRiJTzfxCBsHICcQNuZVMa8GQNIAM3wHW0QAIq0AIYwIAsgAN5tVdExyWrYHRJFwMUAANkACRWwFhopmYjlgFQNWIMOExyRmfz1AFb53NRsAIcYAEWwCUicIOkRQPYZBFqtxqHdhC41Vt7AR+OVnfedDSNRne7ZWmZtgMvgGlzxxCDpxAHwn20wClGoUMsFCAtsQNWODkNooW5ZlDYBXmzRmssVUSn0mkJwSBlcG2IcEN5A07Xoxq/RgtV4AoukAEvAAHphRBPVybPVgVJQHsk5V8HoQUTYHoQ8SmJ/3N7lpNtc1R8xScLGqABskCJxsdgtKBGmthTmKiJs0At/qY4/5YDAUcQqFFf9bVfrEgXgpQBUABZVYAFVaAFUJABaqAG6VcQpyAAnKAKNaACDmAHcXAHeLCLvWgQQ/IQ97J/k/AIgkBkgvAIkzAIf/AvBHFeAQABbpWACsiAXfcJEAgzJ5RKKtBzF8gldPADUxADQdADTrAFnWAQVpA+UfcGb+AGJpiC8GMCMoB1xvQC9/OC23hMFiACGXODPAABpoV2FEEAMUQAzkGRe0AACEEpbgdbUSgQeydBcvcge9eET7hpOmJCAjGFBnFtByIACUILTLF9pbdqvXVtA6FaU/8kXWVIa2rYaTyUKs6xkwPReCAiUXkTRHeIhy4ACz7Ah5MFiO1VJrN3hixleyxEX1WJKmOYLFYZU5rRlbIAfelWNpmYRs73fAlWlvyWiv92fRt2VAYXCmXgLQXHVASRAVzwBRiABXyJA1ygi7yoIztABSigCp8gCyFwCP+SjIHJjEQiEL3jOwUBCUsiZI/wCZj5CY8gZFECCdtIBBAAAdjxAzdQmvaUJUJHAjJAAwJBAl9AAlZmSuHDAGjgAEMAA06gB5dwCfVIEFYwJo9lAm8wB27gAkngjy1gAnP2AQNkPy7IdRDQAjpzg9QpAhNQWkGEWhJBkaxAkQPBnd6JaOD/REF0WBBQM3Cu4U1ZUZ4DcZ41cmmY5oRQCCSAdx894ZLX8orNFCCSgik/hCxU6ZW7xhD1uTZxIzaIoCMBqm0S0Xp7kAEQ4AMukBBVEJogIHuEaIgKgX+L0zj99TgIcTkEFon1gogDUSOuIRAomqIFsaIEsaLSRxBZAARHcASoCASScASlcQAuRQtJlVR2ORAlVgBSYIs48AU/IAUFUADLeEo6YATpFwCEoAiOsAjmwqRAAi8f+ogFcS9+IGSOYCiOwJnauI1dggMNkIA3IAPPdJoI4UokYIFxmo6zhjEFsAZ1gAZkQAZ6wAiZUAmX0ApIJgTpA1lawDyic5zvRRDD/2QwA9SCHUACBrmN18kDLPBnLMADpYUHQRQ4ESmRD1JoMQR6b9eRVwg1irKRMNKRe4CqhgKfmmaSCKWVA2EgknItKCkjTkEXzbUDx0Kr2hZPCyoQwkpd5TZ5PfSTBpEKzNqszpoKWSkQCjCt1Fqt0xqtfycQQuACPPCUr8cruuIDGTqstDagk6N7uVqVbmOs69oZ0uIQOkpUNEqjmbNSLKIjOCAFtYgFX1AAXCAFELCkTSoQEEB2KwAChkClk4AHEJAGWMqMusM7kZkQjlBJJhcImyQIjsAzXfID4HgDceamCCF0zJQEenWGsSQ+T7AJoJAJmHAHzoEDv6krNFuz9v+EA1TnMiB1dQI5qQMRAkJwQFNAJlPgkJyqI7BwEbNGrkG4F+V1hZMihHtBn1ErtaaargllEPUFX7U2EAl6kzaZhj0pEsLqegvxFK11EM+6tk+Rtdb6tgrQtsqaEFBFcX/XlCVzX/9ZA9SWXZkjog1BL6zQtx3hGZ0oGqSoEPFKVAhAuFvxuFkBgn35BflaBW+kCo/EMxEQAS6gsZMgCw9gAG+UudI2OVsqOQixCBULJcVRpQchBEQggqVpmjQrjgNBgS3wFChElUtQPr77u0zAspvQCQ+CA1AFVceZvMdpBbOmvM6rvEvrkDQwAiNAAyO1tDNRtmGrENp7edq7kmmqi0Rja0TkShBdCyFK273XBUHqez3ny73D2r7jeyqEux/16yyb4a6gIRAnwhAjCr7yW2a7Un44W6AEAQsZoAGLsAgM+wp9EL4aAQmqqyRV6pmv+7wYDDeut6Dq2wmeQLwKGsB/J8IjXKyli743Mb/EKhEqjMIU0cItfBJJGaL+OxEz7MIsbMAZWbYk0Qc+3AdnK78xnMNDvBIxisNInMRKvMRM3MRO/MROHBAAOw==';
    7.         xdEditor.id = 'ed_outer';
    8.         xdEditor.innerHTML = `
    9.                 <div id="ed_top">
    10.                         <button type="button" id="code" class="btn" title="代码模式"></button>
    11.                         <span id="font_color" class="btn" title="字体前景色">
    12.                                 <input id="forecolor" class="colorBox" type="color" value="#ff0000" />
    13.                         </span>
    14.                         <span id="bg_color" class="btn" title="字体背景色">
    15.                                 <input id="backcolor" class="colorBox" type="color" value="#0000ff" />
    16.                         </span>
    17.                         <button type="button" id="bold" class="btn" title="加粗"></button>
    18.                         <button type="button" id="italic" class="btn"  title="斜体"></button>
    19.                         <button type="button" id="underline" class="btn" title="下划线"></button>
    20.                         <button type="button" id="strikethrough" class="btn" title="删除线"></button>
    21.                         <button type="button" id="removeformat" class="btn" title="清除格式"></button>
    22.                         <span id="edlist" class="btn" title="列表">
    23.                                 <select id="orderlist">
    24.                                         <option value="0">列表</option>
    25.                                         <option value="insertorderedlist">有序列表</option>
    26.                                         <option value="insertunorderedlist">无序列表</option>
    27.                                 </select>
    28.                         </span>
    29.                         <button type="button" id="image" class="btn" title="图片"></button>
    30.                         <button type="button" id="audio" class="btn" title="音频"></button>
    31.                         <button type="button" id="video" class="btn" title="视频"></button>
    32.                         <span class="grow1"><a href="./" title="回退">返回日记</a></span>
    33.                 </div>
    34.                 <div id="ed_edit">
    35.                         <div id="rDiv" contenteditable="true"><p><br></p></div>
    36.                 </div>
    37.                 <div id="ed_foot">
    38.                         <span class="grow1"></span>
    39.                         <input type="submit" id="sub" name="sub" value="发布" title="提交" />
    40.                 </div>
    41.                 <div id="insertBox">
    42.                         <p id="mtitle" class="mid bold">插入</p>
    43.                         <p><label for="oSrc">地址 : </lable><input id="oSrc" type="text" value=""/ size="60" ></p>
    44.                         <p>
    45.                                 <span id="s1"><label for="oWidth">宽度 : </lable><input id="oWidth" type="text" value="" size="4" /></span>
    46.                                 <span id="s2"><label for="oHeight">高度 : </lable><input id="oHeight" type="text" value="" size="4" /></span>
    47.                                 <span id="s3"><label for="oTitle">提示 : </lable><input id="oTitle" type="text" value="" size="8" /></span>
    48.                                 <span id="s4"><input id="oCtrl" type="checkbox" value="" /><label for="oCtrl">控制</lable></span>
    49.                                 <span id="s5"><input id="oAuto" type="checkbox" value="" /><label for="oAuto">自动</lable></span>
    50.                                 <span id="s6"><input id="oLoop" type="checkbox" value="" /><label for="oLoop">循环</lable></span>
    51.                         </p>
    52.                         <p class="right"><input id="btnInsert" type="button" value="确定" /></p>
    53.                 </div>
    54.         `;
    55.         xdForm.appendChild(xdEditor); /* div追加到form */
    56.         ed_edit.append(elm); /* textarea加入界面 */
    57.         let codeState = false, insertIdx = 0; /* codeState : 编辑模式;insertIdx : 插入媒体索引 */
    58.         /* btns : 所有按钮;colors : 插入颜色box;exec_btns : 一级执行按钮;media_btns :媒体按钮 */
    59.         let btns = document.querySelectorAll('.btn'),
    60.                 colors = document.querySelectorAll('.colorBox');
    61.         let exec_btns = ['bold','italic','underline','strikethrough','removeformat'],
    62.                 media_btns = ['image','audio','video'];

    63.         let icon = {bold: 7,italic: 8,underline: 9,strikethrough: 10,font_color: 11,bg_color: 12,removeformat: 14,edlist: 16,image: 22,video: 23,audio: 24,code: 28};
    64.         /* 函数 : 简单格式化代码 */
    65.         let formatCode = (code) => {
    66.                 let regAr = [
    67.                         [/(<\/p>|<\/div>)(<)/g, '$1\n$2'],
    68.                         [/<div>(<br>)?<\/div>|<p><\/p>/g, ''],
    69.                         [/^[\t]*\n/gm, '']
    70.                 ];
    71.                 regAr.forEach((item) => {
    72.                         code = code.replaceAll(item[0],item[1]);
    73.                 });
    74.                 return code;
    75.         };
    76.         /* 函数 : 工具条按钮组隐藏|显示 */
    77.         let set_btnState = () => {
    78.                 btns.forEach((btn,key) => {
    79.                         if(key > 0) btn.style.display = ['inline-block','none'][Number(codeState)];
    80.                 });
    81.         };
    82.         /* 函数 : 隐藏|显示元素,数组传参,用于插入媒体box */
    83.         let hideEle = (hEles,sEles) => {
    84.                 hEles.forEach((hEle) => hEle.style.display = 'none');
    85.                 sEles.forEach((sEle) => sEle.style.display = 'inline-block');
    86.         };
    87.         /* 工具条按钮上图+功能处理 */
    88.         btns.forEach((item) => {
    89.                 let num = icon[item.id];
    90.                 item.style.background = `url(${picData}) -${num * 20}px 0`;
    91.                 item.onclick = () => {
    92.                         if(exec_btns.includes(item.id)) document.execCommand(item.id,false,item.id);
    93.                         if(item.id === 'code') {
    94.                                 if(codeState) {
    95.                                         rDiv.innerHTML = elm.value;
    96.                                         elm.style.display = 'none';
    97.                                         rDiv.style.display = 'block';
    98.                                         rDiv.focus();
    99.                                 }else{
    100.                                         elm.value = formatCode(rDiv.innerHTML);
    101.                                         elm.style.display = 'block';
    102.                                         elm.focus();
    103.                                         rDiv.style.display = 'none';
    104.                                 }
    105.                                 codeState = !codeState;
    106.                                 item.title = ['代码模式','常规模式'][codeState * 1];
    107.                                 set_btnState();
    108.                         }
    109.                         if(item.id === 'edlist') {
    110.                                 orderlist.onchange = () => document.execCommand(orderlist.value,false,orderlist.value);
    111.                                 orderlist.value = "0";
    112.                         }
    113.                         if(media_btns.includes(item.id)) {
    114.                                 let hides = [[s4,s5,s6],[s1,s2,s3],[s3]];
    115.                                 let shows = [[s1,s2,s3],[s4,s5,s6],[s1,s2,s4,s5]];
    116.                                 let idx = {image: 0, audio: 1, video: 2};
    117.                                 insertBox.style.left = item.offsetLeft + 'px';
    118.                                 insertBox.style.top = ed_top.clientHeight + 'px';
    119.                                 insertBox.style.display = 'block';
    120.                                 insertIdx = idx[item.id];
    121.                                 hideEle(hides[insertIdx],shows[insertIdx]);
    122.                                 mtitle.innerText = '插入' + ['图片','音频','视频'][insertIdx];
    123.                         }
    124.                         elm.value = formatCode(rDiv.innerHTML);
    125.                 };
    126.         });
    127.         /* 插入媒体 */
    128.         btnInsert.onclick = () => {
    129.                 rDiv.focus();
    130.                 let sWidth = oWidth ? ' wdth="' + oWidth.value + '"': '',
    131.                         sHeight = oHeight ? ' height="' + oWidth.value + '"': '',
    132.                         sAuto = oAuto.checked ? ' autoplay="autoplay"' : '',
    133.                         sLoop = oLoop.checked ? ' loop="loop"' : '',
    134.                         sCtrl = oCtrl.checked ? ' controls="controls"' : '';
    135.                 let htmls = [
    136.                         `<img src="${oSrc.value}"${sWidth}${sHeight} alt="" title="${oTitle.value}" />`,
    137.                         `<audio src="${oSrc.value}"${sCtrl}${sAuto}${sLoop}></audio>`,
    138.                         `<video src="${oSrc.value}"${sCtrl}${sWidth}${sHeight}${sAuto}${sLoop}></video>`
    139.                 ];
    140.                 if(oSrc.value) document.execCommand('inserthtml',false,htmls[insertIdx]);
    141.                 insertBox.style.display = 'none';
    142.         };
    143.         /* 前景色&背景色 */
    144.         colors.forEach((item,key) => {
    145.                 if(!codeState) item.oninput = () => document.execCommand(item.id,false,item.value);
    146.         });
    147.         /* 编辑时同步 */
    148.         rDiv.oninput = () => elm.value = rDiv.innerHTML;
    149.         /* 收起媒体box */
    150.         rDiv.onfocus = elm.onfocus = () => insertBox.style.display = 'none';

    151. })();
    复制代码


    【说明】

    一口气写成的初稿,也许有许多缺陷与错误,测试尚未发现不能运行。

    评分

    参与人数 1威望 +50 金钱 +100 经验 +50 收起 理由
    红影 + 50 + 100 + 50 赞一个!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 09:51 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-12-9 09:54 编辑

    三楼的第07行是工具条所用图片base64格式的数据,这样就不用操心图片丢失,也可以避免处理图片URL的麻烦。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 09:54 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-12-9 09:55 编辑

    JS文档虽然构思精巧,代码简洁,逻辑性也基本完好,但感觉很多地方仍需改进。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 10:23 | 显示全部楼层
    去试了一下,功能很齐全啊,有文字各种编辑,还能插入音频视频。黑黑厉害
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 10:28 | 显示全部楼层
    这个是核心技术啊,比那些做音画的代码高了几个数量级
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 10:30 | 显示全部楼层
    马黑黑 发表于 2023-12-9 09:51
    三楼的第07行是工具条所用图片base64格式的数据,这样就不用操心图片丢失,也可以避免处理图片URL的麻烦。

    可以用这个来保存电脑上的图片么?怎样再恢复成常规的图片格式呢?
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 10:42 | 显示全部楼层
    我加了首音乐,发现不选择“控制”就看不到,然后删掉再选择带控制的,发现原来的音乐还在播放,变成2个声音了,不知道怎么刷新
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 10:46 | 显示全部楼层
    黑黑辛苦了,一口气写成一个能互动的editor编辑软件,太厉害了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 10:53 | 显示全部楼层
    红影 发表于 2023-12-9 10:23
    去试了一下,功能很齐全啊,有文字各种编辑,还能插入音频视频。黑黑厉害

    这得益于过时的 execCommand 指令,该指令令一切变得简单。w3c将其丢入垃圾桶,大家都觉得不好理解,丢了也没有提供可替代的封装(将来会有)。

    要替换掉 execCommand 方法,一个选择是 selection+range ,这会让编程变得相当复杂。selection基于选区,range基于选区范围,理论上也简单,但是,操作DOM的时候,DOM有文本节点、元素节点,例如下句代码:

        <p>这里的<b>山水</b>好迷人</p>

    父元素 p 里,有文本节点,有元素节点<b>...</b>。当选择了 “的山”并想给他加颜色 时,就涉及到了文本节点和元素节点跨选区问题,这要处理起来就很费劲:要先判断是否跨节点,然后重新处理节点数据,既要保留原有节点,又要实现加颜色的功能,还要遵守HTML语法规则,等等,工作量是很大的,而 execCommand 将这些要处理的事情都已经封装好,一条命令就可以实现所需功能。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 10:56 | 显示全部楼层
    红影 发表于 2023-12-9 10:30
    可以用这个来保存电脑上的图片么?怎样再恢复成常规的图片格式呢?

    可以用 <img src="..." alt="" /> 标签显示出图片,... 就是那一长串引号里的文本,运行后图片另存为
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 10:58 | 显示全部楼层
    红影 发表于 2023-12-9 10:42
    我加了首音乐,发现不选择“控制”就看不到,然后删掉再选择带控制的,发现原来的音乐还在播放,变成2个声 ...

    进入代码模式,将多出的部分删掉再切换回来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 11:00 | 显示全部楼层
    红影 发表于 2023-12-9 10:30 可以用这个来保存电脑上的图片么?怎样再恢复成常规的图片格式呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 11:01 | 显示全部楼层
    红影 发表于 2023-12-9 10:46
    黑黑辛苦了,一口气写成一个能互动的editor编辑软件,太厉害了

    这个比那个demo功能全一点点
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-12-9 11:02 | 显示全部楼层
    红影 发表于 2023-12-9 10:28
    这个是核心技术啊,比那些做音画的代码高了几个数量级

    功能不同,都是基于CSS+HTML+JS的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 11:44 | 显示全部楼层
    马黑黑 发表于 2023-12-9 10:53
    这得益于过时的 execCommand 指令,该指令令一切变得简单。w3c将其丢入垃圾桶,大家都觉得不好理解,丢了 ...

    这个封装太厉害了,把一切变得简单。
    只是从黑黑的话里得出的结论,黑黑谈的这些太专业了,完全不知道的领域
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 11:50 | 显示全部楼层
    马黑黑 发表于 2023-12-9 10:56
    可以用  标签显示出图片,... 就是那一长串引号里的文本,运行后图片另存为

    哦,知道了。谢谢黑黑
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 11:54 | 显示全部楼层
    马黑黑 发表于 2023-12-9 10:58
    进入代码模式,将多出的部分删掉再切换回来

    试了一下,可以了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-12-9 11:57 | 显示全部楼层

    哇,这些小图全都是base64格式的图图啊
     
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-16 00:13 , Processed in 0.093742 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表