JQuery window.end_to_EDITOR函数

时间:2016-03-10 作者:soniya

我创建了一个元盒来上传图像。每当我单击“选择图像”按钮时,图像上载框就会成功弹出,但当我选择图像并单击“插入”按钮时,图像URL不会插入到文本字段中。请告诉我该怎么做,这样每当我插入图像时,图像URL就会插入到正确的字段中。

var image_field;

jQuery( function( $ ) {
    $( document ).on( \'click\', \'input.select-img\', function( evt ) {
        image_field = $( this ).siblings( \'.img\' );
        check_flag  = 1;

        tb_show( \'\', \'media-upload.php?type=image&TB_iframe=true\' );

        window.send_to_editor = function( html ) {
            imgurl = $( \'img\', html ).attr( \'src\' );
            image_field.val( imgurl );
            tb_remove();
        }

        return false;
    } );
} );

2 个回复
SO网友:iantsch

这只是您的window.send_to_editor 功能:

imgurl = $( \'img\', html ).attr( \'src\' );
应该是

imgurl = $( \'img\', $( html ) ).attr( \'src\' );
因为你的html 变量既不是有效的DOM元素,也不是jQuery元素。

Additional Note:如果您想在多个文本字段上使用Thickbox,我建议您存储和创建send_to_editor 功能:

var image_field,
    store_send_to_editor = null,
    new_send_to_editor = null;

jQuery( function( $ ) {
    store_send_to_editor = window.send_to_editor;
    new_send_to_editor = function(html) {
        imgurl = $( \'img\', $( html ) ).attr( \'src\' );
        image_field.val( imgurl );
        tb_remove();
        window.send_to_editor = store_send_to_editor;
    };
    $( document ).on( \'click\', \'input.select-img\', function( evt ) {
        image_field = $( this ).siblings( \'.img\' );
        check_flag  = 1;
        tb_show( \'\', \'media-upload.php?type=image&TB_iframe=true\' );
        window.sent_to_editor = new_send_to_editor;
        return false;
    } );
} );

SO网友:Bjorn

我最近也遇到了window的问题。send\\u to\\u editor和我使用的代码非常相似。我注意到,当所选图像中填充了“Link URL”字段时,该字段起作用,但如果为空,则不会起作用。然后我注意到,如果html变量只有图像标记,则在尝试获取src属性时,原始代码返回未定义。我提出了以下检查,并重新调整其用途以匹配您的代码。

window.send_to_editor = function(html) {
    var imgurl,
        srcCheck = $(html).attr(\'src\');

    if (srcCheck && typeof srcCheck !== \'undefined\') {
        imgurl = srcCheck;
    } else {
        imgurl = $(\'img\', html).attr(\'src\');
    }

    image_field.val( imgurl );
    tb_remove();
};
以上代码的警告是,如果条件为true,它基本上只获取第一个src属性值,尽管我认为不会有返回多个图像标记的情况。无论如何,以上都是为了我的目的。

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果