Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 劫持编辑器输入字段_Javascript_Ckeditor - Fatal编程技术网

Javascript 劫持编辑器输入字段

Javascript 劫持编辑器输入字段,javascript,ckeditor,Javascript,Ckeditor,当有人在CKeditor中打开图像对话框时,我希望能够从URL文本输入字段抓取onfocus事件 我尝试为元素(id#cke_75_textInput)添加一个事件处理程序,但它只有在单击图像按钮后才出现在DOM中 在浏览了ckeditor3javascript-API文档之后,我在这里苦苦挣扎,找不到我需要的东西 这是可以通过API实现的吗?没有必要对焦点委派做一些魔术(这是一个混乱,因为焦点不冒泡)。只需使用CKEditor API: CKEDITOR.on( 'dialogDefiniti

当有人在CKeditor中打开图像对话框时,我希望能够从URL文本输入字段抓取onfocus事件

我尝试为元素(id#cke_75_textInput)添加一个事件处理程序,但它只有在单击图像按钮后才出现在DOM中

在浏览了ckeditor3javascript-API文档之后,我在这里苦苦挣扎,找不到我需要的东西


这是可以通过API实现的吗?

没有必要对焦点委派做一些魔术(这是一个混乱,因为焦点不冒泡)。只需使用CKEditor API:

CKEDITOR.on( 'dialogDefinition', function( evt ) {
    if ( evt.data.name == 'image' ) {
        var def = evt.data.definition;

        var onShow = def.onShow;
        def.onShow = function() {
            onShow && onShow.apply( this, arguments );

            var input = this.getContentElement( 'info', 'txtUrl' );
            console.log( input.getValue() );
            input.on( 'focus', function() {
                console.log( 'focused' );
            } );
        };
    }
} );

PS.CKE4的文档比旧的CKE3的文档要少很多-

您不会碰巧使用jQuery吧?这有助于将活动与授权联系起来。基本JavaScript会有更多的问题,因为
焦点
事件有冒泡问题。请看一看如何捕获
焦点
更改
和其他非冒泡事件。除非您可以使用jQuery,否则这将是我的建议。我正在使用jQuery。这怎么会更容易呢?我想是委托活动。让我试试…@Galadai和jQuery一起使用,会容易得多。我刚刚更新了我的答案,加入了一个jQuery解决方案和一个DemoHis,它的工作非常出色,但要想从文档中了解到这一点还需要一些工作。每个CKEditor包中都有一个,我的答案中链接了API文档。汇编所有这些需要一些时间,但所有这些都在官方文件中。我的答案中唯一棘手的部分是如何获取对话框实例。我重写了对话框定义的show方法,但我认为可能(或应该)存在更简单的解决方案。