96SEO 2026-06-15 17:44 32
创建书签脚本,实现网页悬浮窗拖拽功Neng
咱就是说前端开发有时候真的挺有意思的。尤其是一些小技巧,Neng让用户体验一下子提升不少。今天咱就来聊聊创建书签脚本,实现网页悬浮窗拖拽功Neng。听起来是不是有点高大上?其实呢,原理并不复杂。
什么是 Bookmarklethen多人第一次kan到书签脚本,会觉得它hen奇怪。实际上呢,它就是一段嵌入书签的 JavaScript 代码。你把它添加到浏览器书签栏后点击就Neng在当前页面执行特定的操作。就像一个快捷指令。

比如你想要快速打开某个网站,或者执行一些自定义的功Neng,就Ke以用书签脚本来实现。这种方式hen灵活,而且不需要安装插件。
为什么百度不收录说到书签脚本呢,经常会遇到一个问题:为什么百度不收录那些书签链接? 简单来说呢,百度抓取页面内容时会遵循一定的规则。Ru果你的书签链接包含 JavaScript 代码或者动态生成的内容,百度可Neng无法正确解析和收录。
另外《内容安全策略》也可Neng会阻止某些脚本的执行和被收录。所以Ru果你希望你的书签链接被百度收录的话,Zui好避免使用复杂的 JavaScript 代码或者动态生成的内容。
核心原理:鼠标拖拽与元素定位要实现悬浮窗拖拽功Neng呢,主要涉及到鼠标位置的计算和元素的定位geng新。 核心代码大概如下:
javascript:=>{
const IFRAME_URL='https://ruankaodaren.com'; //替换成你要打开的网址
const WIDTH=300; //设置宽度
const HEIGHT=200; //设置高度
if) return; //避免重复创建
const box=document.createElement;
box.id='__mini_window__';
Object.assign(box.style,{
position:'fixed',
right:'24px',
bottom:'24px',
width:WIDTH+'px',
height:HEIGHT+'px',
background:'#fff',
borderRadius:'10px',
boxShadow:' 10px 30px rgba', //Ke以调整阴影效果, rgba 的 A 值控制透明度, R G B 是红绿蓝值 ,A 是透明度 例如 rgba 表示完全透明的白色色块. 这里是白色背景并带有阴影效果的代码片段是 Javascript 代码片段是 Javascript 代码片段是 Javascript 代码片段是 Javascript 代码片段是 Javascript 代码片段是 Javascript代码代码代码代码代码代码代码代码片段是 Javascript 代码片段是 Javascript 代码片段是 Javascript代码代码代码的代码片} Object.assign; box.style.right = '24px'; box.style.bottom = '24px'; box.style.width = WIDTH + 'px'; box.style.height = HEIGHT + 'px'; box.style.background = '#fff'; box.style.borderRadius = '10px'; box.style.boxShadow = '10px 30px rgba'; //添加阴影效果 const header=document.createElement; Object .assign; const mkBtn=t=>{ const b=document . createElement b . innerText=t Object . assign return b }; const toggle=mkBtn,close=mkBtn; header . append; const iframe=document . createElement iframe . src=IFRAME_URL Object . assign border : '' }); box . append; let collapsed=false; toggle . onclick==>{ collapsed=!collapsed box . style . height=collapsed?'32px':HEIGHT+'px' toggle . innerText=collapsed?'+':'–'} close . onclick==>{box . remove} let dragging=false sx==>e._clientX sy==>e._clientY sl==>{r}; st==>{r}; let dragStartBox={},dragStartElement={} function startDrag{ dragStartBox={ ...dragStartBox } dragStartElement={ ...dragStartElement } } function endDrag{ dragStartBox={}; dragStartElement={}} function moveDrag{ if{ return } let e = e||window event; let x = e._clientX - dragStartBox; let y = e._clientY - dragStartBox; box //调整元素的坐标 //注意这里的位置需要根据你的实际情况进行调整 } document ==>{ ifreturn if)return moveDrag } document ==>{ dragging //停止拖动操作 endDrag } } function isInsideBox{ return ! && box
简单解释一下这段代码:
创建一个隐藏的 div 作为容器
在容器中添加一个 header 包括关闭按钮和刷新按钮
然后创建一个 iframe 用于加载其他网页
Zui后通过鼠标拖拽来调整容器的位置
浏览器 ≠ 网页浏览工具浏览器其实本身就是一个运行环境
实现步骤
创建 Bookmarklet: 在浏览器中新建一个空白页面
编写 JavaScript: 将上面的 JavaScript 代码复制到空白页中
保存 Bookmarklet: 将空白页面设置为 bookmark 并命名为 "悬浮窗" 或类似名称
测试 Bookmarklet: 点击 bookmark 后确认是否Neng正常工作
注意事项 * **兼容性测试**: 在不同的浏览器版本和操作系统下测试效果是否一致。 Ru果出现兼容性问题Ke以尝试修改 JS 代码。 比如在旧版本 IE 下可Neng会有兼容性问题. 但通常情况下 Chrome、Firefox 和 Safari dou支持良好的 bookmarklet 功Neng。 此外也Ke以考虑使用 Polyfill 来增强兼容性. 但由于某些安全限制导致部分 bookmarklet 可Neng无法在某些浏览器或环境下正常工作。 所以建议先在目标环境中进行测试。Content-Security-Policy也可Neng影响其行为.
不要轻易绕过警告去执行 scripts.
或者直接使用geng简单的方案替代.
比如使用 HTML 或 CSS 实现类似的功Neng。
不要轻易绕过警告去执行 scripts.
兼容性方面 - 进行测试:
确保script在典型的使用场中运行良好且没有报错。
XFrameOptions:
XFrameOptions用于防止跨域攻击,
Content Security Policy则用于限制允许使用的资源类型.
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback