以下是我正在做的:
我添加了wordpress media upload,当点击按钮或链接时,会弹出iframe弹出窗口。然后单击insert into post,将图像url放置在文本框中。
send_to_editor()
function handles image insertion to editor
window.send_to_editor = function(html) {
var imgurl = jQuery(\'img\',html).attr(\'src\');
current_item.siblings(\'.upload_image\').val(imgurl);
current_item.parent().prepend(\'<div><img width="300" src="\'+imgurl+\'" alt="banner image" /></div>\');
tb_remove();
}
因此,您会看到默认的send\\u to\\u编辑器已编辑和更改。现在,当我尝试从wordpress编辑器上传图像时,请上传图像并单击插入图像以发布。它不起作用。
Question: 如何创建多个send_to_editor()
或者parhaps创建新的js函数并将其挂接到图像上传器的每个瞬间,这样它们就不会冲突了?
Solution:
var original_send_to_editor = window.send_to_editor;
window.send_to_editor = function(html) {
var imgurl = jQuery(\'img\',html).attr(\'src\');
current_item.siblings(\'.upload_image\').val(imgurl);
//current_item.siblings(\'#logo\').remove();
current_item.siblings(\'.image-preview\').html(\'<img src="\'+imgurl+\'" >\');
tb_remove();
window.send_to_editor = original_send_to_editor;
}
最合适的回答,由SO网友:Bainternet 整理而成
仅在单击链接或按钮时覆盖send\\u to\\u editor功能,但存储旧功能以还原它,因此请在单击事件中尝试以下操作:
//store old send to editor function
window.restore_send_to_editor = window.send_to_editor;
//overwrite send to editor function
window.send_to_editor = function(html) {
var imgurl = jQuery(\'img\',html).attr(\'src\');
current_item.siblings(\'.upload_image\').val(imgurl);
current_item.parent().prepend(\'<div><img width="300" src="\'+imgurl+\'" alt="banner image" /></div>\');
tb_remove();
//restore old send to editor function
window.send_to_editor = window.restore_send_to_editor;
}
SO网友:Welcher
我的做法与“班纳特”的做法相似。然而,情况略有不同。长话短说,我有多个按钮打开添加媒体窗口,这打破了TinyMCE的默认功能。
创建一个存储2项的对象:
var $state_manager = {
active_item : \'null\',
default_send_to_editor: window.send_to_editor
}
单击时,自定义按钮将更改active\\u项目的值:
$(\'.button\').click(function(){
$state_manager.active_item = $(this).attr(\'data-unqiue-id\');
// open the window and do whatever else you need
})
检查active\\u项的状态,执行自定义工作或调用存储的默认函数,完成后将active\\u项设置为null。
window.send_to_editor = function( html ) {
if($state_manager.active_item === \'null\') {
//call the default
$state_manager.default_send_to_editor( html );
}else{
//do some custom stuff here being sure to reset
// active_item to \'null\' once completed
$state_manager.active_item = \'null\';
}
}
存储活动\\u项目的一个好处是针对不同的输入字段,并用上传项目的url填充它们。