Има ли някакъв начин да получим елемента на изображението, след като вмъкнем изображението с помощта на execCommand? например
e.execCommand('insertimage',0,'ronaldo.png')
Има ли някакъв начин да получим елемента на изображението, след като вмъкнем изображението с помощта на execCommand? например
e.execCommand('insertimage',0,'ronaldo.png')
Не използвайте insertimage
, използвайте обикновен стар insertHTML
и дайте ID на елемента, който вмъквате, за да можете да го препратите по-късно. т.е.
function insertHTML(img) {
var id = "rand" + Math.random();
var doc = document.getElementById("editor");
doc = doc.document ? doc.document : doc.contentWindow.document;
img = "<img src='" + img + "' id=" + id + ">";
if(document.all) {
var range = doc.selection.createRange();
range.pasteHTML(img);
range.collapse(false);
range.select();
} else {
doc.execCommand("insertHTML", false, img);
}
return doc.getElementById(id);
};
document.all
.
- person Tim Down; 03.07.2013
insertHTML
да може да бъде изпълнен...
- person oldboy; 13.11.2017
Можете да използвате факта, че браузърите поставят каретката веднага след вмъкнатото изображение и да работите обратно от там. Следното изисква DOM Range и поддръжка за избор, което изключва IE ‹= 8, но ако това е важно, можете да използвате библиотека като моята собствена Rangy, за да запълни тази празнина.
Демо: http://jsfiddle.net/xJkuj/
Код:
function previousNode(node) {
var previous = node.previousSibling;
if (previous) {
node = previous;
while (node.hasChildNodes()) {
node = node.lastChild;
}
return node;
}
var parent = node.parentNode;
if (parent && parent.nodeType.hasChildNodes()) {
return parent;
}
return null;
}
document.execCommand("InsertImage", false, "http://placekitten.com/200/300");
// Get the current selection
var sel = window.getSelection();
if (sel.rangeCount > 0) {
var range = sel.getRangeAt(0);
var node = range.startContainer;
if (node.hasChildNodes() && range.startOffset > 0) {
node = node.childNodes[range.startOffset - 1];
}
// Walk backwards through the DOM until we find an image
while (node) {
if (node.nodeType == 1 && node.tagName.toLowerCase() == "img") {
alert("Found inserted image with src " + node.src);
break;
}
node = previousNode(node);
}
}
За да изпълните самостоятелно приложение в Java, не е необходимо да има война. Един буркан е достатъчен. Войната съдържа информация за това как уеб архив/приложение трябва да бъде внедрено в J2EE контейнер. Когато го стартирате самостоятелно, това не е необходимо. Основният метод ще бъде достатъчен. Можете да разгледате приставката за нюанс на maven. Ще ви помогне да изградите течащ буркан.
(Като странична бележка - изпълняваемият буркан е доста просто нещо. Файлът на манифеста на файла буркан трябва да съдържа ключа MainClass
и това е.)
Това е моят начин:
e.execCommand('insertimage', 0, URI) // image's URI
image=$('img[src="'+URI+'"]').not('.handled').addClass('.handled');
//.not('.handled').addClass('.handled') is needed if there are many images with the same URI