找到
27
篇与
html
相关的结果
-
如何让分享到QQ的链接显示网站Logo?实测这几种方法最有效! 很多朋友都遇到过这样的问题:在浏览器打开一个网页,分享到QQ后,只显示一个单调的链接,或者显示的是浏览器的图标,而不是网站的Logo。这种情况让分享的内容显得不够专业,甚至可能降低点击率。今天我们就来探讨为什么会出现这个问题,以及如何让QQ正确显示网站Logo或页面预览。 为什么QQ分享不显示Logo? 当你从浏览器分享链接到QQ时,QQ会抓取网页的元数据(Open Graph 协议),包括: og:image(分享时显示的图片) og:title(标题) og:description(描述) 如果这些信息没设置好,QQ就会默认抓取浏览器图标或网页截图,导致分享效果不理想。 实测有效的解决方法 方法1:确保网站正确设置Open Graph协议 如果你的网站是自己的(比如个人博客、企业官网),可以在HTML的里添加以下代码: <meta property="og:title" content="你的网站标题" /> <meta property="og:description" content="网站描述" /> <meta property="og:image" content="https://你的网站.com/logo.png" /> <meta property="og:url" content="https://你的网站.com" />关键点: og:image 必须是完整URL(带 https://),不能是相对路径。 图片建议尺寸 1200×630 像素,这样在QQ里显示更清晰。 方法2:使用QQ官方分享接口(适合开发者) 如果你是网站管理员,可以用 QQ互联的JSSDK 自定义分享内容: 前往 QQ开放平台 申请接入。 在网页里引入JS代码,设置分享时的标题、描述和图片。 这样,即使用户从浏览器分享,QQ也会优先读取你设定的信息,而不是浏览器默认的图标。 方法3:手动刷新QQ的缓存(临时解决方案) 如果网站已经设置了og:image,但QQ仍然显示旧图标,可以尝试: 用手机QQ内置浏览器打开网页(点击链接后进入)。 在右上角菜单里点击"刷新",让QQ重新抓取页面信息。 重新分享,看看是否更新了Logo。 方法4:使用支持自定义分享的浏览器(部分有效) 某些浏览器可能优化了分享逻辑,比如: Via浏览器(安卓):轻量简洁,部分情况下能优化QQ识别。 Alook浏览器(iOS/安卓):支持网页截图分享,但可能仍以链接形式发送。 Edge/Firefox(PC端):相比Chrome,有时能更准确读取og:image。 不过,最终效果仍取决于网站代码,浏览器无法100%保证。 方法5:借助第三方工具生成卡片(懒人方案) 如果不想改代码,可以用这些工具生成带Logo的分享卡片: 腾讯云短链服务:生成短链时可自定义缩略图,分享到QQ会显示指定图片。 草料二维码+Logo:把网页转成二维码,并嵌入Logo,分享后用户扫码访问。 总结:如何让QQ分享显示Logo? 方法适用人群效果设置Open Graph协议网站管理员最佳方案使用QQ官方JSSDK开发者效果很好手动刷新QQ缓存普通用户临时有效换浏览器分享普通用户效果不稳定第三方工具生成卡片不想改代码的人效果尚可最终建议: 如果你是网站拥有者,一定要设置 og:image,这是最根本的解决方案! 如果只是普通用户,可以尝试换浏览器或手动刷新QQ缓存,但效果可能有限。 本文首发于6v6-博客网,更多实用技巧请访问:blog.6v6.ren
-
小霸王游戏机网页模拟器2025版_HTML5经典怀旧游戏源码_支持存档与虚拟手柄 项目概览 小霸王模拟器界面图片 本源码基于现代Web技术打造,完美复刻90年代经典游戏体验,集成以下核心技术: 技术栈实现功能性能指标HTML5 Canvas游戏渲染引擎60FPS流畅运行JavaScript游戏逻辑/存档系统<100ms响应延迟CSS3动态界面效果硬件加速支持Web Storage本地存档存储无限存档位核心功能解析 🕹️ 经典游戏合集 内置游戏库: 魂斗罗(30条命版) 超级马里奥兄弟 坦克大战(自定义地图) 双截龙等20+经典 扩展支持: 支持.nes文件加载 自定义游戏列表管理 多存档位即时存取 🎮 操控体验优化 虚拟手柄(支持触屏操作) 键盘映射自定义 连发键设置 灵敏度调节 部署与使用 📥 快速部署指南 下载源码压缩包(约15MB) 上传至服务器/web空间 访问index.html立即开玩 📱 多端兼容性 设备类型支持情况推荐配置PC浏览器Chrome/Firefox键鼠/游戏手柄手机/平板iOS 15+/Android 10触屏虚拟手柄电视盒子需外接控制器蓝牙手柄最佳开发者扩展指南 自定义功能开发 <!-- 添加新游戏示例 --> <script> const newGame = { title: "赤色要塞", rom: "games/Contra.nes", cover: "images/contra.jpg" }; gameList.push(newGame); </script>界面定制参数 主题色修改:编辑css/theme.css 手柄布局调整:修改controls.js 音效替换:更新assets/sounds 2025版本更新 WebAssembly加速核心 在线联机对战功能 成就系统集成 直播推流支持 资源获取 🔗 源码下载:夸克网盘 📦 文件包含: 完整游戏合集(20+经典) 开发者文档(PDF格式) 扩展接口说明 ⚠️ 注意事项:本源码仅限技术研究,游戏版权归原厂商所有 本文由6v6-博客网原创发布 更多精彩内容: 🎮 《10个经典游戏复刻项目》 💻 《HTML5游戏开发指南》 📱 《将网页应用打包为APP教程》
-
二次元随机背景404页面源码:2025年网站美化必备方案(开箱即用版) 动态演示效果图片 (每日自动更新的动漫壁纸效果) 一、2025年网站体验新标准 核心功能亮点 🖼️ 智能壁纸库:集成500+高清二次元原画 📱 全平台适配:完美兼容手机/PC/平板/折叠屏 🔄 流量回收系统:智能推荐+搜索框+返回引导 ⚡ 极速加载:平均响应时间<0.8s(实测数据) 二、2025版独家技术突破 2.1 功能升级对比 功能模块基础版2025增强版壁纸数量30张500+动态更新节日特效❌12种节气动画数据分析基础访问统计用户行为热力图加载速度1.2s0.8s2.2 特色交互设计 重力感应特效(移动端专属) 光标轨迹粒子动画 自动语音提示系统 深色模式智能切换 三、2025极简部署流程 3.1 环境要求 服务器:支持HTML5的任意Web服务 存储空间:建议预留100MB 网络带宽:≥5Mbps 3.2 三步部署教学 解压源码至网站根目录 配置服务器错误页面指向: error_page 404 /404.html; 访问测试: 输入任意不存在的URL 检查壁纸加载效果 四、2025年SEO优化方案 4.1 搜索引擎友好设计 自动继承网站主SEO配置 结构化数据标记 智能内链推荐系统 4.2 流量转化矩阵 热门内容轮播推荐(每日更新) 全局搜索框置顶 社交媒体快速入口 用户反馈收集面板 五、安全获取与技术支持 🔗 稳定下载:夸克网盘 📦 文件内容: 404.html(主页面) /assets/css(样式库) /assets/img(壁纸库) 本文由6v6-博客网技术团队实测,更多资源: 🎨 网站视觉优化方案 🚀 前端性能调优指南 📈 流量转化提升秘籍
-
Minecraft Java版如何批量移动物品?PCL2启动器安装鼠标手势Mod教程 Minecraft Java版如何批量移动物品?PCL2启动器安装鼠标手势Mod教程 Minecraft批量整理背包封面图图片 (提示:此处可添加游戏内批量操作演示图) 一、为什么需要鼠标手势Mod? 在Minecraft Java版中,原生的物品管理功能较为基础: ✅ 常规操作仅支持Shift+左键整组转移 ❌ 无法实现以下需求: 框选多个不同物品批量移动 滚轮快速分拣物资 跨容器智能整理 鼠标手势Mod(如Mouse Tweaks) 可解锁高阶操作,效率提升300%! 二、通过PCL2启动器一键安装Mod 步骤1:准备PCL2启动器 下载并安装最新版 Plain Craft Launcher 2 创建游戏实例(推荐使用 Forge/Fabric 1.18.2+ 版本) 步骤2:搜索并安装鼠标手势Mod 打开PCL2 → 进入「下载」→「Mod」界面 搜索关键词: 核心Mod:Mouse Tweaks(支持拖拽批量操作) 增强推荐:Inventory Profiles Next(附加自动整理功能) 勾选与游戏版本匹配的Mod → 点击「下载并安装」 PCL2安装Mod界面示意图图片 步骤3:验证Mod加载 启动游戏 → 主界面点击「Mods」 确认列表中已加载 Mouse Tweaks 进入存档测试功能(见下文) 三、鼠标手势Mod的6大高阶操作 1. 批量框选搬运(核心功能) 操作:Ctrl+左键拖动划过物品 效果:框选区域内的所有物品会被一次性拿起 2. 滚轮快速分拣 指向物品 + 滚轮滑动 → 逐个转移至相邻容器 3. 跨容器整理 Shift+右键点击 → 自动将物品分类存入箱子 4. 强制堆叠拆分 Alt+左键点击 → 将非满组物品强制拆分 5. 快速丢弃 Ctrl+Q → 清空手持物品栏 6. 自定义快捷键 通过修改 .minecraft/config/mousetweaks.cfg 可调整: 滚轮灵敏度 手势触发范围 快捷键组合 四、常见问题解答(FAQ) Q1:安装后Mod未生效? ✅ 检查游戏版本与Mod是否兼容 ✅ 确认已安装Forge/Fabric加载器 Q2:服务器禁用此类Mod怎么办? ❗ 部分服务器会屏蔽Mouse Tweaks,需提前咨询服主 Q3:Mac系统操作差异? ⌘ 将Ctrl键替换为Command键 五、替代方案与进阶推荐 如果PCL2的Mod库未找到所需资源: 手动下载地址: Mouse Tweaks - CurseForge页面 Inventory Profiles Next - MC百科 拖拽.jar文件至mods文件夹即可 更多游戏技巧欢迎访问 → 6v6-博客网 | 专注游戏攻略与科技前沿 🔥 近期热门: 《我的世界十大实用Redstone装置蓝图》 《Steam Deck终极优化指南》 《AI绘画工具本地部署教程》
-
【Typecho】给Joe主题后台添加custom自定义功能! 大家好,今天来添加一下自定义功能! 😂 温馨提示:站长已经通过本地环境测试custom自定义功能,功能正常可以使用,按照我的操作来一定成功! 大纲 创建custom.php 粘贴代码到custom.php文件 引入custom.php文件 添加li标签代码 引入custom.min.css 引入custom.min.js 总结 摘要 本文主要是教各位给自己的joe主题完成一个后台的自定义设置的功能,以后你要添加带有开关的功能直接在自定义设置里面添加即可! 图片展示 title="m8y8or85.png"图片 如图所示,今天要完成的功能就是图片中的自定义设置!下面跟着我的操作来完成。 创建custom.php 登录你的服务器面板(小皮面板、宝塔面板等)找到joe主题的usr/themes/Joe/ public 进去之后创建一个名字为custom.php文件,然后复制以下代码头进行粘贴: <?php ?> 这个php代码的头部声明吧,以后要添加的php代码全部要放在:<?php 代码放这里面 ?> 怕你们看不懂,如下图所示: title="m8y8y891.png"图片 上面的创建php和粘贴一起说了。下面就是引入custom.php文件了,注意看!!! 引入custom.php 还是一样的,找到目录:/usr/themes/ Joe ,找到 functions.php 文件并打开,打开之后我们看到最后的位置,粘贴下面的代码: // 引入自定义设置 require_once("public/custom.php"); 放心,有演示图片的,不要着急!!! 演示图片 title="m8y97hcy.png"图片 看到图片中的符号没? 🔜 } 把引入代码放在它的前面即可! 每次添加完代码都要先保存,保存后先不要急着关闭functions.php,我们继续找到这个文件的开头位置准备添加以下代码: <li class="item" data-current="joe_custom">自定义设置</li>演示图 title="m8y9cpec.png"图片 放好之后我们保存,然后我就去引入custom.css和js文件了,这个简单啊!!! 引人custom.css&js 找到/usr/themes/Joe/assets/ css 点击创建文件,名字命名为custom.min.css,保存之后打开它,粘贴以下代码: html{--reading: #faf9de}html[data-night=night] body{--reading: #424242}html[data-night=night] body::before{filter:brightness(0.2)}html[data-night=night] body img:not(.owo_image,.shang,.user_logo),html[data-night=night] body .joe_detail__leaving-list .item,html[data-night=night] body .js_ad,html[data-night=night] body .a-js-ad,html[data-night=night] body .joe_detail__friends-item{filter:brightness(0.6)}html .joe_header__above-logo{overflow:hidden}html .joe_header__above-logo::before{content:"";position:absolute;top:-50px;left:-15px;width:250px;height:25px;background-image:linear-gradient(rgba(255, 255, 255, 0), var(--background));opacity:.8;transform:rotate(-45deg);-webkit-animation:flashlights 1s ease-in 1s infinite;animation:flashlights 1.5s ease-in 1s infinite}@-webkit-keyframes flashlights{0%{left:-100px;top:0}to{left:120px;top:100px}}@keyframes flashlights{0%{left:-100px;top:0}to{left:120px;top:100px}}@media(max-width: 1200px){.joe_header__above-search{display:none}.joe_header__above-searchicon{display:block}.joe_header__below-sign .joe_dropdown__link span{display:none}}.js_ad{margin-top:10px;position:relative;border-radius:var(--radius-wrap);box-shadow:var(--box-shadow);overflow:hidden;height:120px}@media(max-width: 768px){.js_ad{height:100px}}.Reward{text-align:center;margin-left:30px;color:var(--minor);font-size:12px}.Reward .footer_flex{width:42px;height:42px;background-color:#f56c6c;border-radius:50%;position:relative;z-index:10;display:flex;justify-content:center;align-items:center;margin-bottom:8px}.Reward .footer_flex:hover{background-color:var(--theme);cursor:pointer}.Reward .footer_flex:hover .flex_rows{display:block}.Reward .footer_flex .flex_rows{box-shadow:0px 1px 4px 2px var(--theme);cursor:auto;height:200px;width:170px;position:absolute;top:-215px;background:var(--background);display:none;border-radius:8px}.Reward .footer_flex .flex_rows::after{content:"";position:absolute;bottom:-16px;left:0;right:0;margin:auto;width:0px;border:18px solid transparent;border-bottom:none;border-top-color:var(--background);filter:drop-shadow(0px 4px 2px var(--theme))}.Reward .footer_flex .flex_rows .flex-footer{overflow:hidden;margin:10px;position:relative;width:150px;height:180px}.Reward .footer_flex .flex_rows .flex-footer .RewardImg{width:900px;position:absolute;left:0}.Reward .footer_flex .flex_rows .flex-footer .RewardImg li{float:left;overflow:hidden}.Reward .footer_flex .flex_rows .flex-footer .RewardImg li img{width:150px;border-radius:2px}.Reward .footer_flex .flex_rows .flex-footer .RewardBtn{display:inline-flex;border-radius:5px;position:absolute;border:1px solid var(--classC);bottom:0px;left:0}.Reward .footer_flex .flex_rows .flex-footer .RewardBtn li:nth-of-type(n + 2){border-left:1px solid var(--classC)}.Reward .footer_flex .flex_rows .flex-footer .RewardBtn li div{height:20px;font-size:12px;color:var(--routine);padding:2px;border-radius:2px}.Reward .footer_flex .flex_rows .flex-footer .RewardBtn li:hover{cursor:pointer}.imgUpload_btn{margin:-10px auto 5px;text-align:right}.imgUpload_btn span{cursor:pointer;margin-right:5px}.top-social{position:relative;padding-top:10px;display:flex;flex-wrap:wrap;justify-content:space-around}.top-social li{width:50px;text-align:center;position:relative;height:32px}.top-social li a{height:100%}.top-social li div{height:100%}.top-social li img{height:100%}.top-social li .WeChatInner{display:none;position:absolute;box-shadow:0px 1px 4px 2px var(--theme);border-radius:var(--radius-wrap);transition:.7s all ease;background:var(--background);-webkit-transition:.7s all ease;top:-180px;left:-50px;transform:translate3d(0, 16px, 0);width:150px;height:150px;z-index:20}.top-social li .WeChatInner::before{content:"";position:absolute;bottom:-16px;left:0;right:0;margin:auto;display:inline-block;width:0px;border:18px solid transparent;border-bottom:none;border-top-color:var(--background);filter:drop-shadow(0px 4px 2px var(--theme))}.top-social li .WeChatInner img{border-radius:2px;width:140px;height:auto;margin:5px;background:none}.top-social li:hover .WeChatInner{display:block}.pe-social{width:100%;background:var(--background);border-radius:var(--radius-wrap);padding:10px 15px;box-shadow:var(--box-shadow);margin-bottom:15px}.joe_comment__respond-form .body .text{background:var(--background);border-radius:var(--radius-inner);padding:5px}.joe_comment__respond-form .foot{justify-content:flex-start}.joe_comment__respond-form .foot .joe_owo__contain{position:static}.joe_comment__respond-form .foot .joe_owo__contain .box{position:absolute;bottom:100%;margin-bottom:6px;left:0px;padding-top:5px;border:1px solid rgba(0,0,0,.15);border-color:transparent;box-shadow:0 0 10px 8px rgba(116,116,116,.08)}.joe_comment__respond-form .foot .comment_box{cursor:pointer;text-align:center;color:var(--routine);height:26px;line-height:26px;background:var(--background);opacity:.85;border-radius:13px;width:70px;margin-left:5px}.joe_comment__respond-form .foot .comment_box:hover{background:var(--theme);color:#fff}.joe_comment__respond-form .foot .comment_box .dropdown-menu{cursor:default;position:absolute;top:auto;bottom:100%;margin-bottom:6px;z-index:10;display:none;min-width:160px;padding:5px 0;font-size:14px;text-align:left;list-style:none;background-color:var(--background);color:var(--minor);background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-color:transparent;border-radius:4px;box-shadow:0 0 10px 8px rgba(116,116,116,.08)}.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-image,.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-code{width:250px;padding:8px 10px}.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-image p,.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-code p{margin:0 0 10px}.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-image p textarea,.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-code p textarea{resize:vertical}.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-image .form-control,.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-code .form-control{display:block;width:100%;padding:6px 12px;font-size:14px;line-height:1.42857143;border:1px solid #ccc;border-radius:4px;border-color:transparent;background:var(--classD);color:#4e5358;max-height:200px;min-height:90px;box-shadow:none;transition:border-color ease-in-out .15s,background ease-in-out .15s,box-shadow ease-in-out .15s,opacity ease-in-out .3s}.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-image .text-right,.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-code .text-right{text-align:right}.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-image .text-right .error,.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-code .text-right .error{float:left;color:var(--theme);-webkit-animation:5s ease-in-out 0s infinite normal none running shaked;animation:5s ease-in-out 0s infinite normal none running shaked}.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-image .text-right .but,.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-code .text-right .but{border-radius:4px;display:inline-block;line-height:1.44;background:var(--theme);color:#fff;padding:.3em 1em}.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-image .text-right .but:hover,.joe_comment__respond-form .foot .comment_box .dropdown-menu .dropdown-code .text-right .but:hover{-webkit-animation:5s ease-in-out 0s infinite normal none running shaked;animation:5s ease-in-out 0s infinite normal none running shaked}.joe_comment__respond-form .foot .press-down{background:var(--theme) !important;color:#fff !important}@media(max-width: 768px){.joe_comment__respond-form .foot .title{display:none}.joe_comment__respond-form .foot .owo .seat,.joe_comment__respond-form .foot .comment_box{width:26px}}.HeaderImg{position:relative;width:100%;height:15rem;display:flex;margin-left:auto;margin-right:auto;justify-content:center;align-items:center;flex-direction:column}.HeaderImg.minImg{width:82.5rem;height:25rem}.HeaderImg img{-o-object-fit:cover;object-fit:cover}.HeaderImg .infomation{position:absolute;line-height:2}.HeaderImg .infomation .title{font-size:2rem;font-weight:700;color:#fff;text-align:center;text-shadow:0 .1875rem .3125rem #1c1f21;letter-spacing:.5rem}.HeaderImg .infomation .desctitle{display:flex;align-items:center;justify-content:center;text-align:center;color:#f3f3f3;font-size:1rem;padding:0 1rem;text-shadow:0 .1875rem .3125rem #1c1f21}.HeaderImg .infomation .desctitle h1{font-size:1rem}.HeaderImg .infomation .desctitle h1.post_h{font-size:1.5rem}.HeaderImg .HeaderImg_arrow{opacity:1;cursor:pointer;margin-top:1.5rem;position:absolute;left:50%;bottom:20%;width:40px;height:40px;margin-left:-20px}.HeaderImg .HeaderImg_arrow .HeaderImg_arrow__bou{transform:translateX(-50%);transition-delay:5s;-webkit-animation-duration:4s;animation-duration:4s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;transform-origin:center bottom;-webkit-animation-name:go_down_animation;animation-name:go_down_animation;-webkit-animation-timing-function:cubic-bezier(0.28, 0.84, 0.42, 1);animation-timing-function:cubic-bezier(0.28, 0.84, 0.42, 1)}@-webkit-keyframes go_down_animation{0%{transform:scale(1, 1) translateY(0px)}10%{transform:scale(1.1, 0.9) translateY(0px)}30%{transform:scale(0.9, 1.1) translateY(-30px)}50%{transform:scale(1.05, 0.95) translateY(0px)}57%{transform:scale(1, 1) translateY(-7px)}64%{transform:scale(1, 1) translateY(0px)}100%{transform:scale(1, 1) translateY(0px)}}@keyframes go_down_animation{0%{transform:scale(1, 1) translateY(0px)}10%{transform:scale(1.1, 0.9) translateY(0px)}30%{transform:scale(0.9, 1.1) translateY(-30px)}50%{transform:scale(1.05, 0.95) translateY(0px)}57%{transform:scale(1, 1) translateY(-7px)}64%{transform:scale(1, 1) translateY(0px)}100%{transform:scale(1, 1) translateY(0px)}}.HeaderImg .HeaderImg_bottom{width:100%;position:absolute;left:0;bottom:-5px}.HeaderImg .HeaderImg_bottom .waves-svg{width:100%;height:6rem}.HeaderImg .HeaderImg_bottom .waves-svg .parallax>use{-webkit-animation:move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;animation:move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite}.HeaderImg .HeaderImg_bottom .waves-svg .parallax>use:first-child{-webkit-animation-delay:-2s;animation-delay:-2s;-webkit-animation-duration:7s;animation-duration:7s;fill:var(--background);opacity:.9}.HeaderImg .HeaderImg_bottom .waves-svg .parallax>use:nth-child(2){-webkit-animation-delay:-3s;animation-delay:-3s;-webkit-animation-duration:10s;animation-duration:10s;fill:var(--background);opacity:.8}.HeaderImg .HeaderImg_bottom .waves-svg .parallax>use:nth-child(3){-webkit-animation-delay:-4s;animation-delay:-4s;-webkit-animation-duration:13s;animation-duration:13s;fill:var(--background);opacity:.9}.HeaderImg .HeaderImg_bottom .waves-svg .parallax>use:nth-child(4){-webkit-animation-delay:-5s;animation-delay:-5s;-webkit-animation-duration:20s;animation-duration:20s;fill:var(--background)}@-webkit-keyframes move-forever{0%{transform:translate3d(-90px, 0, 0)}to{transform:translate3d(85px, 0, 0)}}@keyframes move-forever{0%{transform:translate3d(-90px, 0, 0)}to{transform:translate3d(85px, 0, 0)}}.HeaderImg:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAKUlEQVQImU3IMREAIAgAwJfNkQCEsH8cijjpMf6vnXlQaIiJFx+omEBfmqIEZLe2jzcAAAAASUVORK5CYII=)}@media(max-width: 768px){.HeaderImg{height:15rem;margin-top:0}.HeaderImg.minImg{width:100%;height:15rem}.HeaderImg .infomation .title{font-size:1.2rem}.HeaderImg .infomation .desctitle h1.post_h{font-size:1rem}.HeaderImg .HeaderImg_bottom .waves-svg{height:3rem}}.joe_aside.inactive{display:none}.joe_main{position:relative}@media(max-width: 768px){.joe-stretch{display:none}}.joe-stretch{height:100%;position:absolute;top:0;right:0;padding:40px 0}.joe-stretch .contain{position:-webkit-sticky;position:sticky;transition:top .5s;-webkit-animation:swingIconSet 2s infinite linear alternate;animation:swingIconSet 2s infinite linear alternate;z-index:333}@-webkit-keyframes swingIconSet{0%{transform:rotate(-30deg)}100%{transform:rotate(30deg)}}@keyframes swingIconSet{0%{transform:rotate(-30deg)}100%{transform:rotate(30deg)}}.joe-stretch .contain::before{content:"";position:absolute;top:0;left:0;width:10px;height:25px;border-top:2px solid var(--minor);border-right:2px solid var(--minor);transition:border .35s}.joe-stretch .contain svg{position:absolute;top:25px;left:-3px;width:24px;height:24px;fill:var(--minor);cursor:pointer;transition:fill .35s}.joe-stretch .contain:hover{-webkit-animation-play-state:paused;animation-play-state:paused}.joe-stretch .contain:hover svg{fill:var(--theme)}.joe-stretch .contain:hover::before{border-color:var(--theme)}.joe-stretch.active{display:block}.joe_action_item.read_book{visibility:hidden;transform:scale(0)}.joe_action_item.read_book.active{visibility:visible;transform:scale(1)}.joe_action_item.read_book svg{transform:scale(0);opacity:0;transition:transform .85s,opacity .85s}.joe_action_item.read_book svg.active{transform:scale(1);opacity:1}.joe_action_item.directory{display:none;transform:scale(0)}.joe_action_item.directory.active{display:inline-flex;transform:scale(1)}.joe_action_item.directory svg{transform:scale(0);opacity:0;transition:transform .85s,opacity .85s}.joe_action_item.directory svg.active{transform:scale(1);opacity:1}.joe_action_item.directory .tree{opacity:0;width:15rem;height:20rem;overflow:auto;position:absolute;z-index:-10;background:var(--background);border-radius:var(--radius-wrap);box-shadow:var(--box-shadow);-webkit-animation:rebox .5s forwards;animation:rebox .5s forwards;cursor:default}@-webkit-keyframes rebox{0%{transform:scale(1);opacity:1;transform:translateY(0px);right:45px;bottom:0}100%{transform:scale(0);opacity:0;width:0;height:0}}@keyframes rebox{0%{transform:scale(1);opacity:1;transform:translateY(0px);right:45px;bottom:0}100%{transform:scale(0);opacity:0;width:0;height:0}}.joe_action_item.directory .tree.active{-webkit-animation:box .5s forwards;animation:box .5s forwards}@-webkit-keyframes box{0%{transform:scale(0);opacity:0;width:0;height:0}100%{transform:scale(1);opacity:1;transform:translateY(0px);right:45px;bottom:0}}@keyframes box{0%{transform:scale(0);opacity:0;width:0;height:0}100%{transform:scale(1);opacity:1;transform:translateY(0px);right:45px;bottom:0}}.joe_action_item.directory .tree .title{font-size:16px;border-bottom:1px solid var(--routine);color:var(--routine);position:sticky;position:-webkit-sticky;padding:5px 10px;top:0;font-weight:bold}.joe_action_item.directory .tree .text{padding:5px 10px;overflow-y:auto;overflow-x:hidden;height:85%;white-space:nowrap;text-overflow:ellipsis}.joe_action_item.directory .tree .text a{text-decoration:none;color:var(--minor);font-size:15px;line-height:1.8;cursor:pointer}.joe_action_item.directory .tree .text a:hover{color:var(--theme);border-bottom:1px solid var(--theme)}.joe_detail__count-information .meta .item .icon{fill:var(--minor);margin:0 5px} 粘贴完成之后我们继续返回到/usr/themes/Joe/assets/ js 文件夹,在Js文件夹里面创建名字为custom.min.js的文件,记住哈是文件不是文件夹! 表情图片 代码如下: document.addEventListener("DOMContentLoaded",function(){if($(".Reward").length){let e=document.querySelector(".RewardImg"),t=document.querySelectorAll(".RewardImg li img"),o=document.querySelectorAll(".RewardBtn li"),a=document.querySelectorAll(".RewardBtn li div");for(let n=0;n<a.length;n++){e.style.width=150*t.length+"px";let i=0;a[0].style.backgroundColor="var(--theme)",a[0].style.color="#fff",o[n].style.width=1/a.length*(150-(a.length+1))+"px",a[n].num=n,a[n].onclick=function(){i=this.num;for(let e=0;e<a.length;e++)a[e].style.backgroundColor="",a[e].style.color="";a[i].style.backgroundColor="var(--theme)",a[i].style.color="#fff",e.style.left=-150*i+"px"}}}if($(".WeChat").length){$WeChatA=$(".WeChatA");let e=$WeChatA.get(0).outerHTML;e=e.replace(/^<a/,"<div"),e=e.replace(/\/a>$/,"/div>"),$WeChatA.replaceWith(e),$(".WeChat").mouseenter(function(){$(".WeChat").append('<div class="WeChatInner"><img src="javascript:;" /></div>'),$(".WeChatInner img").attr("src",$(".WeChatA").attr("href"))}),$(".WeChat").mouseleave(function(){$(".WeChatInner").remove()})}if($(".Comment_Citation").length){function e(){let e=Joe.CITATION,t=/(https?:\/\/[^\s]+)/g;t.test(e)?$.ajax({url:e,dataType:"text",success:e=>$(".joe_comment__respond-form .body textarea").val(e)}):$(".joe_comment__respond-form .body textarea").val(e)}e(),$(".Comment_Citation").click(function(){e()})}if($(".Comment_ImageUrl").length&&($(".Comment_ImageUrl").click(function(e){e.stopPropagation(),$(".Comment_ImageUrl .dropdown-menu").slideToggle("fast",function(){$(".Comment_ImageUrl .comment_box").toggleClass("press-down")}),$(".dropdown-image .text-right span").text(""),$(".dropdown-image textarea").val("")}),$(document).click(function(){$(".Comment_ImageUrl .dropdown-menu").stop().slideUp("fast"),$(".Comment_ImageUrl .comment_box").removeClass("press-down")}),$(".Comment_ImageUrl .dropdown-menu").on("click",function(e){e&&e.stopPropagation?e.stopPropagation():window.event&&(window.event.cancelBubble=!0)}),$(".dropdown-image [type='submit']").click(function(){let e=$(this).parents(".dropdown-image").find("textarea"),t=e.val(),o=$(".joe_comment__respond-form .body textarea").val(),a=/\http[s]{0,1}:\/\/.([^<>"]*)(\.(jpg|jpeg|png|gif|webp))/;a.test(t)?(t="[img="+t+"]\n",$(".joe_comment__respond-form .body textarea").val(o+t),$(".Comment_ImageUrl .dropdown-menu").stop().slideUp("fast"),$(".Comment_ImageUrl .comment_box").toggleClass("press-down"),t=e.val("")):($(".dropdown-image .text-right span").addClass("error"),$(".dropdown-image .text-right span").text("格式错误!"))})),$(".Comment_Code").length&&($(".Comment_Code").click(function(e){e.stopPropagation(),$(".Comment_Code .dropdown-menu").slideToggle("fast",function(){$(".Comment_Code .comment_box").toggleClass("press-down")}),$(".dropdown-code .text-right span").text(""),$(".dropdown-code textarea").val("")}),$(document).click(function(){$(".Comment_Code .dropdown-menu").stop().slideUp("fast"),$(".Comment_Code .comment_box").removeClass("press-down")}),$(".Comment_Code .dropdown-menu").on("click",function(e){e&&e.stopPropagation?e.stopPropagation():window.event&&(window.event.cancelBubble=!0)}),$(".dropdown-code [type='submit']").click(function(){let e=$(this).parents(".dropdown-code").find("textarea"),t=e.val(),o=$(".joe_comment__respond-form .body textarea").val();""==t?($(".dropdown-code .text-right span").addClass("error"),$(".dropdown-code .text-right span").text("请输入内容!")):(t="[code]\n"+t+"\n[/code]\n",$(".joe_comment__respond-form .body textarea").val(o+t),$(".Comment_Code .dropdown-menu").stop().slideUp("fast"),$(".Comment_Code .comment_box").toggleClass("press-down"),t=e.val(""))})),$(".comment-list .substance img:not(img.owo_image)").each(function(){$(this).attr("data-src")?$(this).wrap($(`<span style="display: block;" data-fancybox="Joe" href="${$(this).attr("data-src")}"></span>`)):$(this).wrap($(`<span style="display: block;" data-fancybox="Joe" href="${$(this).attr("src")}"></span>`))}),$(".comment-list__item").length){let e=$(".joe_comment > ol.comment-list").children(".comment-list__item"),t='<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8885993286780110"crossorigin="anonymous"></script><ins class="adsbygoogle"style="display:block" data-ad-format="fluid"data-ad-layout-key="-g8-h+6z-cm-d" data-ad-client="ca-pub-8885993286780110" data-ad-slot="5758522083"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>';for(let o=0;o<e.length;o++)o%4==3&&$("<li class='js_ad' style='margin-bottom:10px'>"+t+"</li>").insertAfter(e[o])}if($(".joe-stretch").length&&($(".joe-stretch .contain").css("top",$(".joe_header").height()+40),$(".joe-stretch").on("click",function(){$(".joe_aside").toggleClass("inactive")})),$(".read_book").length&&($(".joe_post").length&&($(".joe_action_item.read_book").addClass("active"),$(".joe_action_item.read_book .icon-1").addClass("active")),$(".joe_action_item.read_book").on("click",function(){$(".joe_action_item.read_book svg").hasClass("icon-1 active")?($(".joe_header").css("display","none"),$(".HeaderImg").css("display","none"),$(".joe_aside").css("display","none"),$(".joe_detail").css("backgroundColor","var(--reading)"),$(".joe_detail__related").css("display","none"),$(".joe_comment").css("display","none"),$(".joe_footer").css("display","none"),$(".joe-stretch").css("display","none"),$(".joe_detail__article").css("font-size","20px")):($(".joe_header").removeAttr("style"),$(".HeaderImg").removeAttr("style"),$(".joe_aside").removeAttr("style"),$(".joe_detail").removeAttr("style"),$(".joe_detail__related").removeAttr("style"),$(".joe_comment").removeAttr("style"),$(".joe_footer").removeAttr("style"),$(".joe-stretch").removeAttr("style"),$(".joe-stretch").removeAttr("style"),$(".joe_detail__article").removeAttr("style")),$(".joe_action_item.read_book .icon-1").toggleClass("active"),$(".joe_action_item.read_book .icon-2").toggleClass("active")})),$(".joe_post").length&&$(".joe_detail__article").find("h2,h3,h4,h5,h6").length){$("body").outerWidth()>=768?($(".joe_action_item.directory").addClass("active"),$(".joe_action_item.directory .icon-2").addClass("active"),$(".joe_action_item.directory .tree").addClass("active")):($(".joe_action_item.directory").addClass("active"),$(".joe_action_item.directory .icon-1").addClass("active"));let e=$(".joe_detail__article").find("*"),t=0;for(let o=0;o<e.length;o++)if("h"==e[o].localName.charAt(0)&&!isNaN(e[o].localName.charAt(1))){e[o].setAttribute("id","t"+t);let a=parseInt(e[o].localName.charAt(1))-2;for(;a--&&!(a<0);)$(".directory .tree .text").append(" ");$(".directory .tree .text").append("<a href='#t"+t+"'>"+$(e[o]).text()+"</a></br>"),t++}$(".joe_action_item.directory").on("click",function(){$(".joe_action_item.directory .tree").toggleClass("active"),$(".joe_action_item.directory .icon-1").toggleClass("active"),$(".joe_action_item.directory .icon-2").toggleClass("active")}),$(".directory .tree").on("click",function(e){e&&e.stopPropagation?e.stopPropagation():window.event&&(window.event.cancelBubble=!0)}),$(".directory .tree a").bind("click touch",function(){$("html,body").animate({scrollTop:$($(this).attr("href")).offset().top-65},1e3)})}$(".HeaderImg_arrow").length&&$(".HeaderImg_arrow").on("click",function(){$("body").outerWidth()>=768&&window.scrollTo({top:300,behavior:"smooth"})})});{function loveSiteTime(e,t){window.setTimeout(function(){loveSiteTime(e,t)},1e3);let o=1e3,a=60*o,n=60*a,i=24*n,r=365*i,s=new Date,l=s.getFullYear(),d=s.getMonth()+1,c=s.getDate(),m=s.getHours(),p=s.getMinutes(),_=s.getSeconds(),g=Date.UTC(2019,10,19,21,0,0);t&&(g=Date.UTC(t.split("-")[0],t.split("-")[1],t.split("-")[2],t.split("-")[3],t.split("-")[4],t.split("-")[5]));let h=Date.UTC(l,d,c,m,p,_),f=h-g,u=Math.floor(f/r),C=Math.floor(f/i-365*u),y=Math.floor((f-(365*u+C)*i)/n),v=Math.floor((f-(365*u+C)*i-y*n)/a),w=Math.floor((f-(365*u+C)*i-y*n-v*a)/o);$("#loveSiteTime4Aside")&&$("#loveSiteTime4Aside").html(e+"</br>"+u+"年"+C+"天"+y+"时"+v+"分"+w+"秒啦</br>"),$("#loveSiteTime4Header")&&$("#loveSiteTime4Header").html(e+"</br>"+u+"年"+C+"天"+y+"时"+v+"分"+w+"秒啦</br>")}}保存之后,去引入这两个文件。 在include.php中引入css\js文件文件路径:/usr/themes/Joe/ public 找到include.php文件并打开,在下面图片中的相应位置添加以下代码: title="m8y9t698.png"图片 <script src="<?php $this->options->themeUrl('assets/js/custom.min.js'); ?>"></script><link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/custom.min.css'); ?>">总结 创建必要的文件custom.php,引入设置,即可在joe后台看见并使用自定义设置功能,以后添加开关就直接在custom.php文件中添加就行了,不用在funstions.php文件去找地方添加了。快去试试吧!
-
在网页中运行EXE程序的完整指南(2025年最新方案) 随着Web技术的快速发展,将传统桌面应用程序(EXE)集成到网页中的需求日益增多。本文将详细介绍6种主流实现方案,涵盖从传统技术到现代云原生的完整解决方案。 一、WebAssembly方案(现代推荐) 实现原理 通过Emscripten工具链将C/C++代码编译为WASM模块,利用浏览器的高性能虚拟机执行原生代码。 实施步骤 环境准备 安装Emscripten SDK: git clone https://github.com/emscripten-core/emsdk.git ./emsdk install latest ./emsdk activate latest 编译转换 使用emcc编译器生成WASM模块: emcc main.c -o app.html -s WASM=1 网页集成 <!DOCTYPE html> <script> fetch('app.wasm') .then(res => res.arrayBuffer()) .then(bytes => WebAssembly.instantiate(bytes)) .then(results => { results.instance.exports._start(); }); </script> 优势与局限 ✅ 性能接近原生,安全沙箱机制 ❗️ 需要源码支持,无法直接转换二进制EXE 二、Electron桌面应用集成 实现原理 通过Node.js的child_process模块调用本地EXE文件,结合Chromium渲染引擎构建混合应用。 开发流程 创建基础项目 npm init electron-app@latest my-app 添加EXE调用功能 const { exec } = require('child_process'); function launchExe() { exec('path/to/program.exe', (err, stdout) => { if(err) console.error(err); }); } 打包部署 使用electron-forge生成安装包: npm run make 安全建议 需签署应用证书防止安全警告 建议通过IPC机制隔离敏感操作 三、云端虚拟化方案 实施方案 服务器部署 推荐使用腾讯云CVM(https://cloud.tencent.com/product/cvm)部署应用 WebRTC串流配置 const peer = new RTCPeerConnection(); navigator.mediaDevices.getDisplayMedia() .then(stream => peer.addStream(stream)); 客户端接入 集成NoVNC库实现浏览器访问: <script src="https://novnc.com/noVNC/vnc.js"></script> <div id="vnc-canvas"></div> 成本分析 资源类型月成本估算4核8G云服务器¥4805Mbps带宽¥900四、浏览器插件方案(传统方式) NPAPI插件开发 #include <npapi.h> NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved) { // 初始化代码 return NPERR_NO_ERROR; }注册表配置 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@mycompany.com/MyPlugin] "Description"="My EXE Runner" "Path"="C:\\plugin\\npMyPlugin.dll"浏览器支持现状 浏览器支持状态Chrome❌ 已弃用Firefox❌ 已弃用Edge❌ 不支持五、服务器端执行方案 CGI接口配置 # adduser.py import cgi form = cgi.FieldStorage() print("Content-type: text/html\n") print(f"<h1>Welcome {form['username'].value}</h1>")Nginx配置 location /cgi-bin/ { gzip off; fastcgi_pass unix:/var/run/fcgiwrap.socket; include fastcgi_params; }安全防护 设置chroot jail环境 使用Docker隔离进程 配置严格的权限控制 六、ClickOnce部署方案 项目配置 <!-- MyApp.csproj --> <PropertyGroup> <PublishUrl>http://cdn.6v6.ren/apps/</PublishUrl> <Install>true</Install> <PublisherName>6V6 Tech</PublisherName> </PropertyGroup>签名证书 New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=6V6 Software" -KeyAlgorithm RSA -KeyLength 2048 -CertStoreLocation "Cert:\CurrentUser\My"技术选型建议表 方案开发难度安全性跨平台适用场景WebAssembly★★★★★★★★★是高性能计算Electron★★★★★★☆是混合应用云端虚拟化★★★★★★☆是企业级应用ClickOnce★★★★★☆否Windows内部系统访问 6v6-博客网 获取更多技术干货 涵盖前沿技术解析、开发实战经验、架构设计方法论等专业内容版权声明:本文采用CC BY-NC-SA 4.0协议,转载请注明出处