gpt4 book ai didi

javascript - 如果特定 block 处于事件状态,古腾堡编辑器会检查 JS

转载 作者:行者123 更新时间:2023-11-30 19:28:20 24 4
gpt4 key购买 nike

我正在编辑器中使用自定义 JS 注册一个 block :

function my_block_assets() {

wp_register_script(
'my-block-js', //
plugins_url( '/dist/my-block.js', dirname( __FILE__ ) ),
array( 'jquery' ),
);

register_block_type(
'custom/my-block', array(
'style' => 'my-block-css',
'editor_style' => 'my-block-editor-css',
'editor_script' => 'my-block-js',
)
);

}

add_action( 'init', 'my_block_assets' );

我只想在编辑器中添加自定义 block 时运行我的自定义 JS。我这样做:

$(window).on('load', function () {      
var container = document.querySelector('.wp-block-custom-my-block');

if ( container ) {
// run custom js
}
});

这似乎可行,但可能很慢。是否有任何特殊的 JS 函数可以用来检查是否在编辑器中添加了 block ?我找到了使用 has_block() 在前端检查 PHP block 的方法,但在编辑器中没有检查 JS 的方法。

最佳答案

您可以从 Block Data Module 中选择许多特定于 block 的数据.也就是说,以下在后端工作:

if ( wp.data.select('core/blocks').getBlockType('custom/my-block') ) { 
//run custom js
}

Doc of getBlockType.

关于前端,我将使用 has_block功能:

<?php 
mycustomblock_frontend_scripts() {
if ( has_block( 'custom/my-block' ) ) {
wp_enqueue_script('my-block-frontend-script');
}
}
add_action( 'wp_enqueue_scripts', 'blockgallery_frontend_scripts' );

关于javascript - 如果特定 block 处于事件状态,古腾堡编辑器会检查 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56692254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com