如何在网站上添加实时代码编辑器? [关闭]

2023-12-11

我正在创建一个需要实时编辑代码(Java、c、python、javascript 等)的网站。我知道 codemirror,我想知道如何在网站上运行代码(例如 W3Schools 自己尝试功能)并在本地运行,而不需要服务器基础设施


对于前端,很容易在 Stack Exchange 上模拟 Stack Snippets 的工作原理。总体思路是为不同部分(HTML/JS/CSS)创建文本区域,然后当您想要渲染它时,创建一个 iframe,其内容是通过插入文本区域值来创建的:

const [button, html, css, javascript, iframe] = document.querySelectorAll('button, textarea, iframe');
button.addEventListener('click', () => {
  const fullHTML = `
    <!doctype html><html>
      <head><style>${css.value}</style></head>
      <body>${html.value}<script>${javascript.value}<\/script></body>
    </html>`;
  iframe.src = 'data:text/html,' + encodeURIComponent(fullHTML);
});
textarea {
  display: block;
}
<button>Run</button>
<textarea><span id="span">a span</span></textarea>
<textarea>span { color: green; }</textarea>
<textarea>span.onclick = () => span.style.color = 'yellow';</textarea>
<iframe sandbox="allow-scripts"></iframe>

以上内容改编自以 Kaiido 为例在元上。

这并不完全是 Stack Snippets 的工作方式 - 它们确实需要后端来获取表单值并构建浏览器看到的 HTML 响应 - 但它非常相似。

对于前端以外的任何东西,它要复杂得多 - 您必须检索用户编写的源文本,向服务器发送请求以正确的语言运行它,然后将请求发送回客户端并渲染它。对于浏览器无法本机运行的任何内容,没有办法绕过“服务器基础设施”来处理和运行代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在网站上添加实时代码编辑器? [关闭] 的相关文章

随机推荐

  • 从 GUI 保存用户设置

    我目前正在编写一个应用程序 它有一个选项框架JDialog 该框架包含用户可以配置的各种复选框和文本字段 我想保存用户对选项所做的更改 这样做的最佳方法是什么 我的第一个想法是将其保存在格式为例如的文件中来实现它 checkBox1 val
  • socket.io 从不连接到客户端

    我无法让 node js 中的 socket io 工作 当我在端口 3000 上启动服务器时 即使在我访问时它也不会收到连接http localhost 3000 我什至尝试复制并粘贴示例代码socket io npmjs 网页 Back
  • 处理列表

    我试图弄清楚如何处理这样的列表 4 6 7 1 2 4 6 10 4 2 4 1 这是一个由整数列表组成的列表 我希望我的函数将此列表作为输入并返回列表中不重复的整数列表 结果应该是 4 6 7 1 2 10 但我在弄清楚如何遍历它时遇到了
  • MySQL 查询语法帮助:错误 #1066 - 不唯一的表/别名

    我有四张桌子 user user billingprofile user shippingprofile and user address user 用户 ID 创建日期 用户计费配置文件 用户ID 地址 用户运输资料 用户ID 地址 用户
  • php 中的 !$page == false 还是 $page ?

    我看到下面的代码使用了 if page false 如果我使用 if page 有什么区别 if id check that page exists page dbRow SELECT FROM pages WHERE id id if p
  • 如何在 React Native 的 组件中插入换行符?

    我想在 React Native 的文本组件中插入一个新行 如 r n 如果我有
  • 如何在 Flink 中将 HashMap 附加到 Configuration 对象?

    我想分享一个HashMap跨 Flink 中的每个节点并允许节点更新该 HashMap 到目前为止我有这个代码 object ParallelStreams val env StreamExecutionEnvironment getExe
  • 如何用C#从oracle数据库填充数据集

    我正在尝试填充 oracle 数据集 NULL 我将其与带有 C 的 NET Framework 2 0 一起使用 这是一个 system data oracleclient 示例http msdn microsoft com en us
  • 如何为 IE、Firefox 和 Chrome 编写网络浏览器插件

    我需要编写一个支持 IE 7 Firefox 3 Chrome 的网络浏览器插件 该插件必须能够将 DirectX 对象放置在网页中 我没有使用插件的经验 我做了一些调查并决定使用 FireBreath 来实现 我无法理解如何将图像放置在插
  • 如何在 D3js 中动态添加图像到圆圈

    我很难弄清楚如何使用数据集中的链接将图像放置在圆圈内 我知道需要一种模式才能将图像添加到节点 related关于此主题的 SO 问题在介绍节点和数据之前附加了定义 图案和图像元素 就我而言 我找不到在选择器函数内附加标签的方法 因为数据是动
  • 如何覆盖testNG中的index.html报告

    我有一个场景 需要将一些自定义消息添加到 index html testNG 报告中 有什么办法可以做到这一点吗 我刚刚创建了一个自定义注释 我想像 DataProvider 一样将其发布到 index html testNG 报告中 到目
  • 将 ImageView 放在布局中的 ImageView 上 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我创建了一个 Android 应用程序 我想将 ImageView 放在 ImageView 上 如何让我成为可能 Thanks 我已经为你创建了代码 请看这是 XML 代码
  • f2py:包装 fortran 模块,该模块利用分布在不同文件中的子例程?

    由于我描述的原因earlier 我需要在Python中使用LAPACKs dgesvd和zgesvd方法 而不是包装在numpy中的方法 有人指出 我可以使用 f2py 来创建我自己的 python 包 问题是 lapack 中的 dges
  • 重写函数类型原型

    我在玩耍并试图覆盖时遇到了一个有趣的行为Function原型 假设我们已经像这样重写了 toString const funcToString Function prototype toString Function prototype t
  • 清理 Oracle 序列

    我广泛使用 SQL Server 但对 Oracle 的经验很少 我接到的任务是 清理 Oracle 数据库中的序列 但我不知道如何安全地完成此任务 我需要确定表中实际的最大值 假设 ID 105 然后查看该 ID 的下一个序列是什么 如果
  • fontello 中的图标字体不适用于 Meteor js

    我已经从 fontello 下载了自定义图标字体 并打算在我的流星应用程序中使用它 我尝试了下载包附带的演示 字体显示正常 这是我的CSS font face font family fontello src url fonts fonte
  • iOS 应用程序:几次崩溃,常见主题为:SIGSEGV 和 _sigtramp

    作为 obj c 的新手 我不擅长阅读堆栈跟踪 但我通常可以找出代码中从哪里开始查找 然而 在测试过程中 其中一位测试人员不断报告多次随机崩溃 我无法确定堆栈跟踪的头或尾 因为它们不指向我自己的任何代码 这里有两个 0 WIT Free 0
  • 如何在 Swift 中将枚举和 switch() 与 UITableViewController 结合使用

    我的 UITableView 有两个部分 所以我为它们创建了一个枚举 private enum TableSections HorizontalSection VerticalSection 如何使用在 numberOfRowsInSect
  • Android Automotive Arm_86 未在虚拟设备中列出

    我一直在开发 Android 汽车应用程序 但由于未知原因尚未设置模拟器 我已经尝试过文档并且this我正在使用金丝雀频道 下载汽车图像后 它没有列在虚拟设备下 我使用的是android studio 4 0 1版本 如何解决这个问题 谢谢
  • 如何在网站上添加实时代码编辑器? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我正在创建一个需要实时编辑代码 Java c python javascript 等 的网站 我知道 codemirror 我想知道如何在网站上运行代码 例如 W3Schools 自己