Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ocamargo

Recuperar a posição do cursor em javascr

Recommended Posts

Pessoal,

De que forma eu consigo recuperar a posição do cursor em javascript

Veja bem, estou trabalhando numa pagina que faz a inserção de textos e de imagens. Supondo que eu tenha a seguinte situação:

A pagina esta me mostrando

Texto1

Texto2

Texto3

E eu gostaria de inserir uma imagem entre o Texto 1 e o Texto2. Sendo assim ele deveria me mostrar

Texto1

<img>

Texto2

Texto3

Mas ele sempre joga a imagem para o fina, desse jeito

Texto1

Texto2

Texto3

<img>

A função de inserção da imagem esta assim:

function Escreve(){	if (frmDados.hidAlign.value!="" && frmDados.hidArq.value!="")	{  var Arq, Align;  Align = frmDados.hidAlign.value;  Arq = frmDados.hidArq.value.substring(frmDados.hidArq.value.lastIndexOf("\\") + 1,frmDados.hidArq.value.length);  window.opener.frames.message.document.body.innerHTML += '<img src="<%=local%>imagens/textos/' + Arq + '">';  return;	}}
Eu pensei que poderia resolver esse problema recuperando a posição do cursor e jogar a imagem onde o cursor estiver. Mas como fazer isso em JavaScript?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta colocar um div (layer) vazio entre o texto1 e o texto2 e depois modifica o innerHTML só dele

 

ficaria mais ou menos assim

 

Texto1

<div id="mostra_imagem"></div>

Texto2

Texto3

 

Depois colocava no script

 

document.getElementById("mostra_imagem").innerHTML = '<img src="<%=local%>imagens/textos/' + Arq + '">'

Abraço

 

http://forum.imasters.com.br/public/style_emoticons/default/ninja.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia ate ser, mas eu não tenho um lugar fixo para colocar um div. Pode ser em qualquer lugar do iframe, não será somente entre o Texto1 e o Texto2. O objetivo e colocar a imagem onde o usuario desejar. Eu tentei usar controlRange e execCommand, a posição foi no lugar correto. Assim eu consegui o resultado esperado, mas não tenho como mudar o alinhamento da imagem. Não descobri uma forma de passar parametros de alinhamento pelo execCommand('insertImage').

Observe:

function adicionarimagem(){	var selectedRange = getRange_message();//	var htmlmode = "<img src="+frmText.hidImg.value+" align=right>"	selectedRange.execCommand("InsertImage", false, frmText.hidImg.value)	frames.message.focus();	volta();}function getRange_message (){	frames.message.focus();	var selection = frames.message.document.selection.createRange ();	if(selection.text == "");	{	selection = frames ['message'].document;	}return selection;}function volta(){	document.frmText.memTexto.value = frames.message.document.body.innerHTML}

A linha comentada era o que eu queria fazer. o usuario escolhe o alinhamento e eu aplico o alinhamento conforme a escolha e na posição desejada.

Eu sei que se eu colocar execCommand('insertImage', true, img) e ele abre a tela pra mim com as opcoes de alinhamento. Mas pra mim nao serve. Tem que ser false e conseguir passar um parametro como na tag img do html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém conseguiu solucionar este problema?

Estou tendo o mesmo problema, irei postar o código, se alguém puder me dar um help :lol:

function insertImage(editor_name, imagePath, align, border, padding, width, height){
		var image = ' <input type="image" src="'+imagePath+'"';
		if (align  != '') image = image+' align="'+align+'"';
		var style = '';
		if (border != '') style = style+' border:'+border+'px solid #000000;';
		if (padding != '') style = style+' padding:'+padding+';';
		if (width != '') style = style+' width:'+width+'px;';
		if (height != '') style = style+' height:'+height+'px;';		
		if (style != '') image = image+' style="'+style+'" ';
		image = image+'>';
		InsertHTML(edt_name, image);
	}

	function InsertHTML(edt_name, html)
	{
		editor = document.getElementById(edt_name);
		editor.contentWindow.document.execCommand('inserthtml', false, html);		
	}

Está funcionando beleza no firefox... mas no IE

editor.contentWindow.document.execCommand('inserthtml', false, html);
não funciona

 

Já tentei trocar "inserthtml" por "insertHTML" e por "InsertHtml", coloquei tudo maiusculo também...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.