思源笔记折腾记录 - 更奇怪的 html 块 - 模板可以传参啦

本贴最后更新于 748 天前,其中的信息可能已经物是人非

更多类似的内容在思源笔记折腾记录 - 稍微汇总一下 - leolee 的回帖 - 链滴 (ld246.com)可以看到,扩展功能有风险的,小心使用嗷

我们之前在

思源笔记折腾记录 -html 块 - 链接卡片 - 链滴 (ld246.com)

弄了一个这样的代码块:

let findHostBlock; findHostBlock = (element) => { try { if (element.host) { return findHostBlock(element.host); }机 if ( element.parentNode && element.parentNode.getAttribute && element.parentNode.getAttribute("data-node-id") ) { return element.parentNode; } return findHostBlock(element.parentNode); } catch (e) { return undefined; } }; try { class scriptX extends HTMLElement { constructor() { super(); this.style.display = "none"; this.hostBlock = findHostBlock(this); if (this.hostBlock) { let iife = new Function(`return (hostBlock)=>{${this.innerText}}`)(); iife(this.hostBlock); } } } customElements.define("script-x", scriptX); } catch (e) {}

之前我们并没有实际用到它,现在就要实际用上了.

这里我们来搞一个会自毁的 html 块

<div> <script> let findHostBlock; findHostBlock = (element) => { try { if (element.host) { return findHostBlock(element.host); }机 if ( element.parentNode && element.parentNode.getAttribute && element.parentNode.getAttribute("data-node-id") ) { return element.parentNode; } return findHostBlock(element.parentNode); } catch (e) { return undefined; } }; try { class scriptX extends HTMLElement { constructor() { super(); this.style.display = "none"; this.hostBlock = findHostBlock(this); if (this.hostBlock) { let iife = new Function(`return (hostBlock)=>{${this.innerText}}`)(); iife(this.hostBlock); } } } customElements.define("script-x", scriptX); } catch (e) {} </script> <script-x> let id = hostBlock.dataset.nodeId fetch( '/api/block/deleteBlock', { method:"post", body:JSON.stringify({id:id}) } ) </script-x> </div>

你可以尝试一下把上面那个 html 代码块的内容贴到 html 块里面,你会发现它消失了,或者说根本贴不进去.

那一个根本无法渲染出来的 html 块有什么卵用咧?

我们可以试一下这个

<div> <script> let findHostBlock; findHostBlock = (element) => { try { if (element.host) { return findHostBlock(element.host); } if ( element.parentNode && element.parentNode.getAttribute && element.parentNode.getAttribute("data-node-id") ) { return element.parentNode; } return findHostBlock(element.parentNode); } catch (e) { return undefined; } }; try { class scriptX extends HTMLElement { constructor() { super(); this.style.display = "none"; this.hostBlock = findHostBlock(this); if (this.hostBlock) { let iife = new Function(`return (hostBlock)=>{${this.innerText}}`)(); iife(this.hostBlock); } } } customElements.define("script-x", scriptX); } catch (e) {} </script> <script> //这里可以搞别的事情 </script> <script-x> hostBlock.nextElementSibling.setAttribute('style','color:red') </script-x> <script-x> let id = hostBlock.dataset.nodeId fetch( '/api/block/deleteBlock', { method:"post", body:JSON.stringify({id:id}) } ) </script-x> </div> {: id="20230427014752-jugtp3g"} {: id="20230427014913-wud8xuf"}

把它保存成一个模板之后, 模板就可以用来当成命令使用了嗷(谨慎操作,多加测试,死了我肯定不管埋)

注意这玩意是没有办法在文档里面写了之后保存成模板的,你只能直接编辑模板......

非常没啥卵用,甚至有点危险,但是可以开开脑洞,模板不能传参的问题,大概可能也许应该可以靠这个来解决........

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25482 引用 • 105378 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    58 引用 • 25 回帖 • 4 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 34 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 29 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 10 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 466 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    32 引用 • 99 回帖
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 317 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 390 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    16 引用 • 236 回帖 • 260 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    181 引用 • 408 回帖 • 487 关注
  • OnlyOffice
    4 引用 • 22 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 385 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 4 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 591 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 91 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    412 引用 • 3588 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 53 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖 • 4 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 16 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 2 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    54 引用 • 44 回帖
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 448 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 764 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    188 引用 • 319 回帖 • 251 关注