我使用WordPress的wp_editor
功能来设置TinyMCE实例。我想使用一些jQuery函数为TinyMCE添加一些额外的功能,但我似乎仅限于将{TinyMCE函数用于focus
,change
和blur
等内容。
当我以这种方式设置TinyMCE时,我基本上被迫使用init_instance_callback
属性。
PHP
$default_settings = array(
'media_buttons' => false,
'quicktags' => false,
'tinymce' => array(
'init_instance_callback' => 'function(editor) { // Forced to use JS in PHP...
editor.on("focus", function(ed) {
tinyMCEFocus(ed);
});
}'
)
);
我有一个不同的文件,我想处理TinyMCE JavaScript,因为我不想在我调用wp_editor()
的PHP文件中编写所有JavaScript。
在我的editor.on("focus", function(ed) {
中,我在我的外部JS文件中放置了一个函数,我在其中定义了jQuery。
JS
( function( $ ) {
var tinyMCEFocus = function(ed) {
console.log('Do stuff with jQuery if this works');
}
} )( jQuery );
但不知何故,当调用此函数时,它根本不起作用并给我一个错误:
(index):401 Uncaught ReferenceError:未定义tinyMCEFocus
老实说,到目前为止,使用TinyMCE进行自定义操作一直很困扰,但也许我做错了什么?有没有更好的方法来处理这类事情?如果没有,为什么我的功能不起作用?
答案 0 :(得分:0)
然而,在发布之后仅仅几分钟就回答了我自己的问题。
我发现你必须通过将该功能分配给窗口来为该功能提供“全局”范围。这也让我可以简单地将一个函数传递给init_instance_callback
。
'tinymce' => array(
'init_instance_callback' => 'customTinyMCEFunctions'
)
在JavaScript中。
( function( $ ) {
window.customTinyMCEFunctions= function(editor) {
// Do stuff
}
} )( jQuery );