Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/ninja-fo.../assets/js/lib
File: summernote.js
[4000] Fix | Delete
/**
[4001] Fix | Delete
* insert image
[4002] Fix | Delete
*
[4003] Fix | Delete
* @param {String} src
[4004] Fix | Delete
* @param {String|Function} param
[4005] Fix | Delete
* @return {Promise}
[4006] Fix | Delete
*/
[4007] Fix | Delete
this.insertImage = function (src, param) {
[4008] Fix | Delete
return async.createImage(src, param).then(function ($image) {
[4009] Fix | Delete
beforeCommand();
[4010] Fix | Delete
[4011] Fix | Delete
if (typeof param === 'function') {
[4012] Fix | Delete
param($image);
[4013] Fix | Delete
} else {
[4014] Fix | Delete
if (typeof param === 'string') {
[4015] Fix | Delete
$image.attr('data-filename', param);
[4016] Fix | Delete
}
[4017] Fix | Delete
$image.css('width', Math.min($editable.width(), $image.width()));
[4018] Fix | Delete
}
[4019] Fix | Delete
[4020] Fix | Delete
$image.show();
[4021] Fix | Delete
range.create().insertNode($image[0]);
[4022] Fix | Delete
range.createFromNodeAfter($image[0]).select();
[4023] Fix | Delete
afterCommand();
[4024] Fix | Delete
}).fail(function () {
[4025] Fix | Delete
context.triggerEvent('image.upload.error');
[4026] Fix | Delete
});
[4027] Fix | Delete
};
[4028] Fix | Delete
[4029] Fix | Delete
/**
[4030] Fix | Delete
* insertImages
[4031] Fix | Delete
* @param {File[]} files
[4032] Fix | Delete
*/
[4033] Fix | Delete
this.insertImages = function (files) {
[4034] Fix | Delete
$.each(files, function (idx, file) {
[4035] Fix | Delete
var filename = file.name;
[4036] Fix | Delete
if (options.maximumImageFileSize && options.maximumImageFileSize < file.size) {
[4037] Fix | Delete
context.triggerEvent('image.upload.error', lang.image.maximumFileSizeError);
[4038] Fix | Delete
} else {
[4039] Fix | Delete
async.readFileAsDataURL(file).then(function (dataURL) {
[4040] Fix | Delete
return self.insertImage(dataURL, filename);
[4041] Fix | Delete
}).fail(function () {
[4042] Fix | Delete
context.triggerEvent('image.upload.error');
[4043] Fix | Delete
});
[4044] Fix | Delete
}
[4045] Fix | Delete
});
[4046] Fix | Delete
};
[4047] Fix | Delete
[4048] Fix | Delete
/**
[4049] Fix | Delete
* insertImagesOrCallback
[4050] Fix | Delete
* @param {File[]} files
[4051] Fix | Delete
*/
[4052] Fix | Delete
this.insertImagesOrCallback = function (files) {
[4053] Fix | Delete
var callbacks = options.callbacks;
[4054] Fix | Delete
[4055] Fix | Delete
// If onImageUpload options setted
[4056] Fix | Delete
if (callbacks.onImageUpload) {
[4057] Fix | Delete
context.triggerEvent('image.upload', files);
[4058] Fix | Delete
// else insert Image as dataURL
[4059] Fix | Delete
} else {
[4060] Fix | Delete
this.insertImages(files);
[4061] Fix | Delete
}
[4062] Fix | Delete
};
[4063] Fix | Delete
[4064] Fix | Delete
/**
[4065] Fix | Delete
* insertNode
[4066] Fix | Delete
* insert node
[4067] Fix | Delete
* @param {Node} node
[4068] Fix | Delete
*/
[4069] Fix | Delete
this.insertNode = this.wrapCommand(function (node) {
[4070] Fix | Delete
range.create().insertNode(node);
[4071] Fix | Delete
range.createFromNodeAfter(node).select();
[4072] Fix | Delete
});
[4073] Fix | Delete
[4074] Fix | Delete
/**
[4075] Fix | Delete
* insert text
[4076] Fix | Delete
* @param {String} text
[4077] Fix | Delete
*/
[4078] Fix | Delete
this.insertText = this.wrapCommand(function (text) {
[4079] Fix | Delete
var textNode = range.create().insertNode(dom.createText(text));
[4080] Fix | Delete
range.create(textNode, dom.nodeLength(textNode)).select();
[4081] Fix | Delete
});
[4082] Fix | Delete
[4083] Fix | Delete
/**
[4084] Fix | Delete
* return selected plain text
[4085] Fix | Delete
* @return {String} text
[4086] Fix | Delete
*/
[4087] Fix | Delete
this.getSelectedText = function () {
[4088] Fix | Delete
var rng = this.createRange();
[4089] Fix | Delete
[4090] Fix | Delete
// if range on anchor, expand range with anchor
[4091] Fix | Delete
if (rng.isOnAnchor()) {
[4092] Fix | Delete
rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));
[4093] Fix | Delete
}
[4094] Fix | Delete
[4095] Fix | Delete
return rng.toString();
[4096] Fix | Delete
};
[4097] Fix | Delete
[4098] Fix | Delete
/**
[4099] Fix | Delete
* paste HTML
[4100] Fix | Delete
* @param {String} markup
[4101] Fix | Delete
*/
[4102] Fix | Delete
this.pasteHTML = this.wrapCommand(function (markup) {
[4103] Fix | Delete
var contents = range.create().pasteHTML(markup);
[4104] Fix | Delete
range.createFromNodeAfter(list.last(contents)).select();
[4105] Fix | Delete
});
[4106] Fix | Delete
[4107] Fix | Delete
/**
[4108] Fix | Delete
* formatBlock
[4109] Fix | Delete
*
[4110] Fix | Delete
* @param {String} tagName
[4111] Fix | Delete
*/
[4112] Fix | Delete
this.formatBlock = this.wrapCommand(function (tagName) {
[4113] Fix | Delete
// [workaround] for MSIE, IE need `<`
[4114] Fix | Delete
tagName = agent.isMSIE ? '<' + tagName + '>' : tagName;
[4115] Fix | Delete
document.execCommand('FormatBlock', false, tagName);
[4116] Fix | Delete
});
[4117] Fix | Delete
[4118] Fix | Delete
this.formatPara = function () {
[4119] Fix | Delete
this.formatBlock('P');
[4120] Fix | Delete
};
[4121] Fix | Delete
context.memo('help.formatPara', lang.help.formatPara);
[4122] Fix | Delete
[4123] Fix | Delete
/* jshint ignore:start */
[4124] Fix | Delete
for (var idx = 1; idx <= 6; idx ++) {
[4125] Fix | Delete
this['formatH' + idx] = function (idx) {
[4126] Fix | Delete
return function () {
[4127] Fix | Delete
this.formatBlock('H' + idx);
[4128] Fix | Delete
};
[4129] Fix | Delete
}(idx);
[4130] Fix | Delete
context.memo('help.formatH'+idx, lang.help['formatH' + idx]);
[4131] Fix | Delete
};
[4132] Fix | Delete
/* jshint ignore:end */
[4133] Fix | Delete
[4134] Fix | Delete
[4135] Fix | Delete
/**
[4136] Fix | Delete
* fontSize
[4137] Fix | Delete
*
[4138] Fix | Delete
* @param {String} value - px
[4139] Fix | Delete
*/
[4140] Fix | Delete
this.fontSize = function (value) {
[4141] Fix | Delete
this.focus();
[4142] Fix | Delete
var rng = range.create();
[4143] Fix | Delete
[4144] Fix | Delete
if (rng && rng.isCollapsed()) {
[4145] Fix | Delete
var spans = style.styleNodes(rng);
[4146] Fix | Delete
var firstSpan = list.head(spans);
[4147] Fix | Delete
[4148] Fix | Delete
$(spans).css({
[4149] Fix | Delete
'font-size': value + 'px'
[4150] Fix | Delete
});
[4151] Fix | Delete
[4152] Fix | Delete
// [workaround] added styled bogus span for style
[4153] Fix | Delete
// - also bogus character needed for cursor position
[4154] Fix | Delete
if (firstSpan && !dom.nodeLength(firstSpan)) {
[4155] Fix | Delete
firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;
[4156] Fix | Delete
range.createFromNodeAfter(firstSpan.firstChild).select();
[4157] Fix | Delete
$editable.data(KEY_BOGUS, firstSpan);
[4158] Fix | Delete
}
[4159] Fix | Delete
} else {
[4160] Fix | Delete
beforeCommand();
[4161] Fix | Delete
$(style.styleNodes(rng)).css({
[4162] Fix | Delete
'font-size': value + 'px'
[4163] Fix | Delete
});
[4164] Fix | Delete
afterCommand();
[4165] Fix | Delete
}
[4166] Fix | Delete
};
[4167] Fix | Delete
[4168] Fix | Delete
/**
[4169] Fix | Delete
* insert horizontal rule
[4170] Fix | Delete
*/
[4171] Fix | Delete
this.insertHorizontalRule = this.wrapCommand(function () {
[4172] Fix | Delete
var rng = range.create();
[4173] Fix | Delete
var hrNode = rng.insertNode($('<HR/>')[0]);
[4174] Fix | Delete
if (hrNode.nextSibling) {
[4175] Fix | Delete
range.create(hrNode.nextSibling, 0).normalize().select();
[4176] Fix | Delete
}
[4177] Fix | Delete
});
[4178] Fix | Delete
context.memo('help.insertHorizontalRule', lang.help.insertHorizontalRule);
[4179] Fix | Delete
[4180] Fix | Delete
[4181] Fix | Delete
/**
[4182] Fix | Delete
* remove bogus node and character
[4183] Fix | Delete
*/
[4184] Fix | Delete
this.removeBogus = function () {
[4185] Fix | Delete
var bogusNode = $editable.data(KEY_BOGUS);
[4186] Fix | Delete
if (!bogusNode) {
[4187] Fix | Delete
return;
[4188] Fix | Delete
}
[4189] Fix | Delete
[4190] Fix | Delete
var textNode = list.find(list.from(bogusNode.childNodes), dom.isText);
[4191] Fix | Delete
[4192] Fix | Delete
var bogusCharIdx = textNode.nodeValue.indexOf(dom.ZERO_WIDTH_NBSP_CHAR);
[4193] Fix | Delete
if (bogusCharIdx !== -1) {
[4194] Fix | Delete
textNode.deleteData(bogusCharIdx, 1);
[4195] Fix | Delete
}
[4196] Fix | Delete
[4197] Fix | Delete
if (dom.isEmpty(bogusNode)) {
[4198] Fix | Delete
dom.remove(bogusNode);
[4199] Fix | Delete
}
[4200] Fix | Delete
[4201] Fix | Delete
$editable.removeData(KEY_BOGUS);
[4202] Fix | Delete
};
[4203] Fix | Delete
[4204] Fix | Delete
/**
[4205] Fix | Delete
* lineHeight
[4206] Fix | Delete
* @param {String} value
[4207] Fix | Delete
*/
[4208] Fix | Delete
this.lineHeight = this.wrapCommand(function (value) {
[4209] Fix | Delete
style.stylePara(range.create(), {
[4210] Fix | Delete
lineHeight: value
[4211] Fix | Delete
});
[4212] Fix | Delete
});
[4213] Fix | Delete
[4214] Fix | Delete
/**
[4215] Fix | Delete
* unlink
[4216] Fix | Delete
*
[4217] Fix | Delete
* @type command
[4218] Fix | Delete
*/
[4219] Fix | Delete
this.unlink = function () {
[4220] Fix | Delete
var rng = this.createRange();
[4221] Fix | Delete
if (rng.isOnAnchor()) {
[4222] Fix | Delete
var anchor = dom.ancestor(rng.sc, dom.isAnchor);
[4223] Fix | Delete
rng = range.createFromNode(anchor);
[4224] Fix | Delete
rng.select();
[4225] Fix | Delete
[4226] Fix | Delete
beforeCommand();
[4227] Fix | Delete
document.execCommand('unlink');
[4228] Fix | Delete
afterCommand();
[4229] Fix | Delete
}
[4230] Fix | Delete
};
[4231] Fix | Delete
[4232] Fix | Delete
/**
[4233] Fix | Delete
* create link (command)
[4234] Fix | Delete
*
[4235] Fix | Delete
* @param {Object} linkInfo
[4236] Fix | Delete
*/
[4237] Fix | Delete
this.createLink = this.wrapCommand(function (linkInfo) {
[4238] Fix | Delete
var linkUrl = linkInfo.url;
[4239] Fix | Delete
var linkText = linkInfo.text;
[4240] Fix | Delete
var isNewWindow = linkInfo.isNewWindow;
[4241] Fix | Delete
var rng = linkInfo.range || this.createRange();
[4242] Fix | Delete
var isTextChanged = rng.toString() !== linkText;
[4243] Fix | Delete
[4244] Fix | Delete
if (options.onCreateLink) {
[4245] Fix | Delete
linkUrl = options.onCreateLink(linkUrl);
[4246] Fix | Delete
}
[4247] Fix | Delete
[4248] Fix | Delete
var anchors = [];
[4249] Fix | Delete
if (isTextChanged) {
[4250] Fix | Delete
// Create a new link when text changed.
[4251] Fix | Delete
var anchor = rng.insertNode($('<A>' + linkText + '</A>')[0]);
[4252] Fix | Delete
anchors.push(anchor);
[4253] Fix | Delete
} else {
[4254] Fix | Delete
anchors = style.styleNodes(rng, {
[4255] Fix | Delete
nodeName: 'A',
[4256] Fix | Delete
expandClosestSibling: true,
[4257] Fix | Delete
onlyPartialContains: true
[4258] Fix | Delete
});
[4259] Fix | Delete
}
[4260] Fix | Delete
[4261] Fix | Delete
$.each(anchors, function (idx, anchor) {
[4262] Fix | Delete
$(anchor).attr('href', linkUrl);
[4263] Fix | Delete
if (isNewWindow) {
[4264] Fix | Delete
$(anchor).attr('target', '_blank');
[4265] Fix | Delete
} else {
[4266] Fix | Delete
$(anchor).removeAttr('target');
[4267] Fix | Delete
}
[4268] Fix | Delete
});
[4269] Fix | Delete
[4270] Fix | Delete
var startRange = range.createFromNodeBefore(list.head(anchors));
[4271] Fix | Delete
var startPoint = startRange.getStartPoint();
[4272] Fix | Delete
var endRange = range.createFromNodeAfter(list.last(anchors));
[4273] Fix | Delete
var endPoint = endRange.getEndPoint();
[4274] Fix | Delete
[4275] Fix | Delete
range.create(
[4276] Fix | Delete
startPoint.node,
[4277] Fix | Delete
startPoint.offset,
[4278] Fix | Delete
endPoint.node,
[4279] Fix | Delete
endPoint.offset
[4280] Fix | Delete
).select();
[4281] Fix | Delete
});
[4282] Fix | Delete
[4283] Fix | Delete
/**
[4284] Fix | Delete
* returns link info
[4285] Fix | Delete
*
[4286] Fix | Delete
* @return {Object}
[4287] Fix | Delete
* @return {WrappedRange} return.range
[4288] Fix | Delete
* @return {String} return.text
[4289] Fix | Delete
* @return {Boolean} [return.isNewWindow=true]
[4290] Fix | Delete
* @return {String} [return.url=""]
[4291] Fix | Delete
*/
[4292] Fix | Delete
this.getLinkInfo = function () {
[4293] Fix | Delete
this.focus();
[4294] Fix | Delete
[4295] Fix | Delete
var rng = range.create().expand(dom.isAnchor);
[4296] Fix | Delete
[4297] Fix | Delete
// Get the first anchor on range(for edit).
[4298] Fix | Delete
var $anchor = $(list.head(rng.nodes(dom.isAnchor)));
[4299] Fix | Delete
[4300] Fix | Delete
return {
[4301] Fix | Delete
range: rng,
[4302] Fix | Delete
text: rng.toString(),
[4303] Fix | Delete
isNewWindow: $anchor.length ? $anchor.attr('target') === '_blank' : false,
[4304] Fix | Delete
url: $anchor.length ? $anchor.attr('href') : ''
[4305] Fix | Delete
};
[4306] Fix | Delete
};
[4307] Fix | Delete
[4308] Fix | Delete
/**
[4309] Fix | Delete
* setting color
[4310] Fix | Delete
*
[4311] Fix | Delete
* @param {Object} sObjColor color code
[4312] Fix | Delete
* @param {String} sObjColor.foreColor foreground color
[4313] Fix | Delete
* @param {String} sObjColor.backColor background color
[4314] Fix | Delete
*/
[4315] Fix | Delete
this.color = this.wrapCommand(function (colorInfo) {
[4316] Fix | Delete
var foreColor = colorInfo.foreColor;
[4317] Fix | Delete
var backColor = colorInfo.backColor;
[4318] Fix | Delete
[4319] Fix | Delete
if (foreColor) { document.execCommand('foreColor', false, foreColor); }
[4320] Fix | Delete
if (backColor) { document.execCommand('backColor', false, backColor); }
[4321] Fix | Delete
});
[4322] Fix | Delete
[4323] Fix | Delete
/**
[4324] Fix | Delete
* insert Table
[4325] Fix | Delete
*
[4326] Fix | Delete
* @param {String} sDim dimension of table (ex : "5x5")
[4327] Fix | Delete
*/
[4328] Fix | Delete
this.insertTable = this.wrapCommand(function (sDim) {
[4329] Fix | Delete
var dimension = sDim.split('x');
[4330] Fix | Delete
[4331] Fix | Delete
var rng = range.create().deleteContents();
[4332] Fix | Delete
rng.insertNode(table.createTable(dimension[0], dimension[1], options));
[4333] Fix | Delete
});
[4334] Fix | Delete
[4335] Fix | Delete
/**
[4336] Fix | Delete
* float me
[4337] Fix | Delete
*
[4338] Fix | Delete
* @param {String} value
[4339] Fix | Delete
*/
[4340] Fix | Delete
this.floatMe = this.wrapCommand(function (value) {
[4341] Fix | Delete
var $target = $(this.restoreTarget());
[4342] Fix | Delete
$target.css('float', value);
[4343] Fix | Delete
});
[4344] Fix | Delete
[4345] Fix | Delete
/**
[4346] Fix | Delete
* resize overlay element
[4347] Fix | Delete
* @param {String} value
[4348] Fix | Delete
*/
[4349] Fix | Delete
this.resize = this.wrapCommand(function (value) {
[4350] Fix | Delete
var $target = $(this.restoreTarget());
[4351] Fix | Delete
$target.css({
[4352] Fix | Delete
width: value * 100 + '%',
[4353] Fix | Delete
height: ''
[4354] Fix | Delete
});
[4355] Fix | Delete
});
[4356] Fix | Delete
[4357] Fix | Delete
/**
[4358] Fix | Delete
* @param {Position} pos
[4359] Fix | Delete
* @param {jQuery} $target - target element
[4360] Fix | Delete
* @param {Boolean} [bKeepRatio] - keep ratio
[4361] Fix | Delete
*/
[4362] Fix | Delete
this.resizeTo = function (pos, $target, bKeepRatio) {
[4363] Fix | Delete
var imageSize;
[4364] Fix | Delete
if (bKeepRatio) {
[4365] Fix | Delete
var newRatio = pos.y / pos.x;
[4366] Fix | Delete
var ratio = $target.data('ratio');
[4367] Fix | Delete
imageSize = {
[4368] Fix | Delete
width: ratio > newRatio ? pos.x : pos.y / ratio,
[4369] Fix | Delete
height: ratio > newRatio ? pos.x * ratio : pos.y
[4370] Fix | Delete
};
[4371] Fix | Delete
} else {
[4372] Fix | Delete
imageSize = {
[4373] Fix | Delete
width: pos.x,
[4374] Fix | Delete
height: pos.y
[4375] Fix | Delete
};
[4376] Fix | Delete
}
[4377] Fix | Delete
[4378] Fix | Delete
$target.css(imageSize);
[4379] Fix | Delete
};
[4380] Fix | Delete
[4381] Fix | Delete
/**
[4382] Fix | Delete
* remove media object
[4383] Fix | Delete
*/
[4384] Fix | Delete
this.removeMedia = this.wrapCommand(function () {
[4385] Fix | Delete
var $target = $(this.restoreTarget()).detach();
[4386] Fix | Delete
context.triggerEvent('media.delete', $target, $editable);
[4387] Fix | Delete
});
[4388] Fix | Delete
[4389] Fix | Delete
/**
[4390] Fix | Delete
* set focus
[4391] Fix | Delete
*/
[4392] Fix | Delete
this.focus = function () {
[4393] Fix | Delete
// [workaround] Screen will move when page is scolled in IE.
[4394] Fix | Delete
// - do focus when not focused
[4395] Fix | Delete
if (!$editable.is(':focus')) {
[4396] Fix | Delete
$editable.focus();
[4397] Fix | Delete
[4398] Fix | Delete
// [workaround] for firefox bug http://goo.gl/lVfAaI
[4399] Fix | Delete
if (!$editable.is(':focus') && agent.isFF) {
[4400] Fix | Delete
range.createFromNode($editable[0])
[4401] Fix | Delete
.normalize()
[4402] Fix | Delete
.collapse()
[4403] Fix | Delete
.select();
[4404] Fix | Delete
}
[4405] Fix | Delete
}
[4406] Fix | Delete
};
[4407] Fix | Delete
[4408] Fix | Delete
/**
[4409] Fix | Delete
* returns whether contents is empty or not.
[4410] Fix | Delete
* @return {Boolean}
[4411] Fix | Delete
*/
[4412] Fix | Delete
this.isEmpty = function () {
[4413] Fix | Delete
return dom.isEmpty($editable[0]) || dom.emptyPara === $editable.html();
[4414] Fix | Delete
};
[4415] Fix | Delete
};
[4416] Fix | Delete
[4417] Fix | Delete
var Clipboard = function (context) {
[4418] Fix | Delete
var self = this;
[4419] Fix | Delete
[4420] Fix | Delete
var $editable = context.layoutInfo.editable;
[4421] Fix | Delete
[4422] Fix | Delete
this.events = {
[4423] Fix | Delete
'summernote.keydown': function (we, e) {
[4424] Fix | Delete
if (self.needKeydownHook()) {
[4425] Fix | Delete
if ((e.ctrlKey || e.metaKey) && e.keyCode === key.code.V) {
[4426] Fix | Delete
context.invoke('editor.saveRange');
[4427] Fix | Delete
self.$paste.focus();
[4428] Fix | Delete
[4429] Fix | Delete
setTimeout(function () {
[4430] Fix | Delete
self.pasteByHook();
[4431] Fix | Delete
}, 0);
[4432] Fix | Delete
}
[4433] Fix | Delete
}
[4434] Fix | Delete
}
[4435] Fix | Delete
};
[4436] Fix | Delete
[4437] Fix | Delete
this.needKeydownHook = function () {
[4438] Fix | Delete
return (agent.isMSIE && agent.browserVersion > 10) || agent.isFF;
[4439] Fix | Delete
};
[4440] Fix | Delete
[4441] Fix | Delete
this.initialize = function () {
[4442] Fix | Delete
// [workaround] getting image from clipboard
[4443] Fix | Delete
// - IE11 and Firefox: CTRL+v hook
[4444] Fix | Delete
// - Webkit: event.clipboardData
[4445] Fix | Delete
if (this.needKeydownHook()) {
[4446] Fix | Delete
this.$paste = $('<div />').attr('contenteditable', true).css({
[4447] Fix | Delete
position : 'absolute',
[4448] Fix | Delete
left : -100000,
[4449] Fix | Delete
opacity : 0
[4450] Fix | Delete
});
[4451] Fix | Delete
$editable.before(this.$paste);
[4452] Fix | Delete
[4453] Fix | Delete
this.$paste.on('paste', function (event) {
[4454] Fix | Delete
context.triggerEvent('paste', event);
[4455] Fix | Delete
});
[4456] Fix | Delete
} else {
[4457] Fix | Delete
$editable.on('paste', this.pasteByEvent);
[4458] Fix | Delete
}
[4459] Fix | Delete
};
[4460] Fix | Delete
[4461] Fix | Delete
this.destroy = function () {
[4462] Fix | Delete
if (this.needKeydownHook()) {
[4463] Fix | Delete
this.$paste.remove();
[4464] Fix | Delete
this.$paste = null;
[4465] Fix | Delete
}
[4466] Fix | Delete
};
[4467] Fix | Delete
[4468] Fix | Delete
this.pasteByHook = function () {
[4469] Fix | Delete
var node = this.$paste[0].firstChild;
[4470] Fix | Delete
[4471] Fix | Delete
if (dom.isImg(node)) {
[4472] Fix | Delete
var dataURI = node.src;
[4473] Fix | Delete
var decodedData = atob(dataURI.split(',')[1]);
[4474] Fix | Delete
var array = new Uint8Array(decodedData.length);
[4475] Fix | Delete
for (var i = 0; i < decodedData.length; i++) {
[4476] Fix | Delete
array[i] = decodedData.charCodeAt(i);
[4477] Fix | Delete
}
[4478] Fix | Delete
[4479] Fix | Delete
var blob = new Blob([array], { type : 'image/png' });
[4480] Fix | Delete
blob.name = 'clipboard.png';
[4481] Fix | Delete
[4482] Fix | Delete
context.invoke('editor.restoreRange');
[4483] Fix | Delete
context.invoke('editor.focus');
[4484] Fix | Delete
context.invoke('editor.insertImagesOrCallback', [blob]);
[4485] Fix | Delete
} else {
[4486] Fix | Delete
var pasteContent = $('<div />').html(this.$paste.html()).html();
[4487] Fix | Delete
context.invoke('editor.restoreRange');
[4488] Fix | Delete
context.invoke('editor.focus');
[4489] Fix | Delete
[4490] Fix | Delete
if (pasteContent) {
[4491] Fix | Delete
context.invoke('editor.pasteHTML', pasteContent);
[4492] Fix | Delete
}
[4493] Fix | Delete
}
[4494] Fix | Delete
[4495] Fix | Delete
this.$paste.empty();
[4496] Fix | Delete
};
[4497] Fix | Delete
[4498] Fix | Delete
/**
[4499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function