Javascript 如何动态添加代码笔嵌入并确保其呈现?
期望的行为 在注册用户可以编辑页面内容的环境中显示嵌入式代码笔 一个页面中可能添加了多个代码笔 实际行为 将笔添加到DOM时,笔不会显示,只显示指向笔的链接 复制步骤 注意:下面的步骤只是为了演示在我自己的环境中发生的逻辑,即注册用户在网站上编辑内容 01)转到此随机选择的Javascript 如何动态添加代码笔嵌入并确保其呈现?,javascript,html,codepen,Javascript,Html,Codepen,期望的行为 在注册用户可以编辑页面内容的环境中显示嵌入式代码笔 一个页面中可能添加了多个代码笔 实际行为 将笔添加到DOM时,笔不会显示,只显示指向笔的链接 复制步骤 注意:下面的步骤只是为了演示在我自己的环境中发生的逻辑,即注册用户在网站上编辑内容 01)转到此随机选择的 02)点击页面右下角的嵌入链接 03)从HTML(推荐)选项卡复制内容 04)转到 05)打开Chrome开发者工具,用嵌入代码替换段落元素 06)笔将不显示,仅显示如下链接: See the Pen [pen_name]
02)点击页面右下角的
嵌入链接
03)从HTML(推荐)
选项卡复制内容
04)转到
05)打开Chrome开发者工具,用嵌入代码替换段落元素
06)笔将不显示,仅显示如下链接:
See the Pen [pen_name] by [pen_author] on CodePen
问题
我需要执行哪些额外步骤来确保代码笔被渲染
鉴于嵌入代码的格式为:
见史蒂夫·加德纳的笔()
在…上
当脚本粘贴到页面中时,期望脚本只完成它的工作似乎有点自以为是
如果是这种情况,我如何动态添加内容(包括脚本标记)并确保执行它
编辑
我刚刚遇到了这个,它表明了这种格式:
$.getScript(“https://static.codepen.io/assets/embed/ei.js“,函数(){
log(“运行新js!”);
});
当我在chromedev工具中运行它时,在DOM中粘贴嵌入代码后,笔被渲染
- 这种方法有什么问题吗李>
- 为什么在DOM中粘贴嵌入代码“不起作用”李>
- 嵌入代码中引用的脚本文件是否是笔独有的李>
- 或者只需将脚本添加到页面中一次,它就能处理所有嵌入的笔(既有笔也有动态添加的笔)李>
我尝试将此添加到
:
而且,将它放在那里似乎不会解析现有的或动态添加的嵌入代码
它们仍然只是显示消息:
See the Pen [pen_name] by [pen_author] on CodePen
再次编辑
使用
中引用的脚本,在将HTML动态添加到DOM后,我尝试调用此脚本:
__CPEmbed()
它会渲染代码笔
我不确定这是否是一种合法的方式,但我在文章结尾处遇到了\uu CPEmbed
:
我看你已经明白了!是的,\uu CPEmbed()
是触发iframe插入的官方API。如果您想将某些嵌入作为目标,您甚至可以为其提供一个特定的选择器:\uu CPEmbed('.my codepen embed')
默认情况下,当document.readyState!==正在加载“
,但您可以随时调用它。多个调用不应影响已转换的嵌入
我在我们的常规嵌入文档中再也找不到这个了,所以我正在做一个注释来更新它
谢谢 您好-这一切都改变了吗,我刚开始得到错误未捕获引用错误:\uu CPEmbed未定义
调用\uu CPEmbed()代码>-我想它是昨天起作用的,在最近的一次编码狂潮中,我可能在其他地方改变了一些东西,这就是原因,但我想我会问,谢谢。脚本链接到模板html页面:
具体来说,错误是:未捕获引用错误:u CPEmbed未在Object.success(common.js:1945)at fire(jquery.js:3291)at Object.firefith[解析](jquery.js:3421)at done(jquery.js:9533)at XMLHttpRequest.eval(jquery.js:9785)处定义
@user1063287 CodePen嵌入脚本(ei.js)出现临时问题,该问题已得到修复。现在应该可以正常工作了。谢谢@shshaw-我可以确认此错误消息不再显示,谢谢。