自定义小部件纹理区域上的CodeMirror

时间:2018-12-30 作者:Second2None

我目前正在自定义widgets文本区域的插件中使用此代码来启用codemirror。

(function ($) {
        $(document).ready( function(){
              var coinmedi_es_<?php echo $wid_id; ?> = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
                coinmedi_es_<?php echo $wid_id; ?>.codemirror = _.extend(
                    {},
                    coinmedi_es_<?php echo $wid_id; ?>.codemirror,
                    {
                        mode: \'htmlmixed\',
                        lineNumbers: true,
                        indentUnit: 2,
                        tabSize: 2,
                        autoRefresh:true

                    }
                );
            var cm_editor_<?php echo $wid_id; ?> = wp.codeEditor.initialize($(\'#<?php echo $textarea_id; ?>\') , coinmedi_es_<?php echo $wid_id; ?> );

            $(document).on(\'keyup\', \'.CodeMirror-code\', function(){
                $(\'#<?php echo $textarea_id; ?>\').html(cm_editor_<?php echo $wid_id; ?>.codemirror.getValue());
                $(\'#<?php echo $textarea_id; ?>\').trigger(\'change\');
            });

        });
})(jQuery);
HTML的一切都很好,但当我尝试添加javascript时,例如。

<script> alert(\'1\') </script>
它接受javascript并按其应该的方式突出显示,但当我单击“保存”按钮时,此文本区域中没有任何内容。当我删除javascript时,它会按原样保存。我哪里做错了,我似乎无法指出为什么它没有节约。任何帮助都将不胜感激。

编辑:更新方法

$instance[\'ad-code\'] = ( ! empty( $new_instance[\'ad-code\'] ) ) ? $new_instance[\'ad-code\'] : \'\';

3 个回复
最合适的回答,由SO网友:Second2None 整理而成

问题归结为使用.html 并将html直接注入Codemirror,具体如下:

$(\'#<?php echo $textarea_id; ?>\').html(cm_editor_<?php echo $wid_id; ?>.codemirror.getValue());
将此更改为.text 通过对html/js进行编码更正了此问题

$(\'#<?php echo $textarea_id; ?>\').text(cm_editor_<?php echo $wid_id; ?>.codemirror.getValue());

SO网友:T.Todua

您是否尝试过:

1) 包装javascript的步骤CDATA ?

<script>
//<![CDATA[
    alert(\'1\');
//]]>
</script>
2)变更modejavascript (而不是mode: \'htmlmixed\')

SO网友:Bashirpour

我在找这样的东西。这对您很有用:

https://wpreset.com/add-codemirror-editor-plugin-theme/

相关推荐

我可以使用<脚本>直接插入JavaScript吗?

我对建立Wordpress网站很陌生,所以如果我不能正确描述事情,请原谅我。有一个网站提供。屏幕上飞行蝙蝠的js文件。https://www.delphitools.info/2013/10/30/pimp-your-website-with-an-halloween-bat/它说我可以使用<script async src=\"https://cdn.delphitools.info/wp-content/uploads/2013/10/jsbat.js\"></script>&