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

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

更多类似的内容在思源笔记折腾记录 - 稍微汇总一下 - 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"}

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

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

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

  • 思源笔记

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

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

    26386 引用 • 109743 回帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • OneDrive
    2 引用 • 3 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 134 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    591 引用 • 3528 回帖
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    440 引用 • 1238 回帖 • 599 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    84 引用 • 414 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    268 引用 • 666 回帖 • 1 关注
  • Word
    13 引用 • 41 回帖
  • 印象笔记
    3 引用 • 16 回帖 • 2 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 650 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 2 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 697 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 662 关注
  • 新人

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

    52 引用 • 228 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 71 关注
  • Facebook

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

    4 引用 • 15 回帖 • 441 关注
  • 开源

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

    415 引用 • 3597 回帖
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 496 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 280 关注
  • 自由行
    1 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖 • 1 关注
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 31 回帖
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 113 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    86 引用 • 165 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 3 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 408 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    115 引用 • 319 回帖
  • Firefox

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

    7 引用 • 30 回帖 • 373 关注