wordpress - 动态 Gutenberg 块未在编辑器中初始化 Slick Carousel,根本不执行 JS
问题描述
我已经创建了一个动态的 Gutenberg 块,<ServerSideRender />
并且该块是使用 PHP 呈现的。cronjob 每晚将客户评论导入 MySQL 数据库。The Block 在 Slick Carousel 中显示这些客户评论。
前端一切正常,但 Block 不会在编辑器(后端)中初始化 Slick Carousel。看起来根本没有执行任何 JavaScript。我已经将我的渲染 PHP 文件剥离为:
索引.php
/**
* Server-side rendering of the dynamic 'mna/testimonial' block.
*/
function render_block_mna_testimonial($attributes) {
$foo = '<h1>I am confused</h1>';
$bar = '<script type="text/javascript">alert("HEY HEY");</script>';
return $foo.$bar;
}
/**
* Registers the 'mna/testimonial' block on server.
*/
function register_block_mna_testimonial() {
register_block_type('mna/testimonial', array(
'attributes' => array(
...
),
'render_callback' => 'render_block_mna_testimonial',
));
}
add_action('init', 'register_block_mna_testimonial');
前端行为:显示 H1,显示 Alert
编辑器中的行为:显示 H1,不显示警报
我绝望地添加了 setTimeout<script type="text/javascript">setTimeout(function(){ alert("HEY HEY"); }, 10000);</script>
并得到了相同的结果,仍然没有警报。
我尝试使用customEvent
GitHub 上此评论中描述的 coderaaron:https ://github.com/WordPress/gutenberg/issues/12603#issuecomment-513945557
但由于即使警报不起作用,它也不会执行document.addEventListener
。
任何想法为什么 JS 没有在编辑器中执行?
解决方案
推荐阅读
- javascript - 图像在移动时恢复到原来的比例值
- sql - 将两个sql查询合并为一个
- python - 使用垂直线和日期数据生成平滑曲线时出错:“时间戳”和“numpy.float64”实例之间不支持“<”
- c++ - 对范围内的 for 循环感到困惑
- reactjs - 部署对 firebase 错误的反应:“错误:目标容器不是 DOM 元素。”
- javascript - 如何使用 Moment js 从 ISO 日期获取月份名称
- matlab - 希望用户输入精确的“(x,y)”,包括括号和逗号
- bash - 如何在 bash 中创建嵌套序列?
- mysql - 如何使用mysql代码获取time_in和time_out考勤
- python - 在视频中只计算一次相同的移动物体/圆圈