Amigos estou precisando melhorar esta rotina de marca-texto e estou com alguns problemas:
O texto só é marcado na segunda vez que o botão é clicado por conta do designMode.
O usuário não poderia alterar a página, nem texto, nem figura, nem tabela. da mesma forma que com o designMode false.
Isso poderia ser resolvido se eu ligasse o designMode editasse e desliga-se mas quando ele é invocado faz refresh na página e só funciona da segunda vez quando o designMode está desligado.
Obs: A rotina funciona da seguinte maneira você marca o texto e clica no botão, mas por conta do problema só está funcionando da segunda vez.
No ie funcionou colocando o document.designMode para "Off" mas no firefox não funciona!!!
********* Arquivo index.asp *******************
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="javascript">
function Browser() {
var ua, s, i;
this.isIE = false; // Internet Explorer
this.isOP = false; // Opera
this.isNS = false; // Netscape
this.version = null;
ua = navigator.userAgent;
s = "Opera";
if ((i = ua.indexOf(s)) >= 0) {
this.isOP = true;
this.version = parseFloat(ua.substr(i + s.length));
return;
}
s = "Netscape6/";
if ((i = ua.indexOf(s)) >= 0) {
this.isNS = true;
this.version = parseFloat(ua.substr(i + s.length));
return;
}
s = "Gecko";
if ((i = ua.indexOf(s)) >= 0) {
this.isNS = true;
this.version = 6.1;
return;
}
s = "MSIE";
if ((i = ua.indexOf(s))) {
this.isIE = true;
this.version = parseFloat(ua.substr(i + s.length));
return;
}
}
var browser = new Browser();
function marcador( color )
{
try {
var frmObj = window.document.getElementById('frmCentro').contentWindow;
frmObj.document.designMode = "On";
// frmObj.document.body.Design
if (browser.isIE)/* && (browser.version < 7)*/
{
frmObj.document.execCommand('backcolor', false, color);
}
else
{
frmObj.document.execCommand('readonly', false, false);
frmObj.document.execCommand('hilitecolor', false, color);
//frmObj.document.designMode = "Off";
//frmObj.document.setDesignMode = false;
}
} catch (e) {
alert("Não é suportado por este browser.");
}
}
</script>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="../img/Selecionar.gif" width="35" height="35" onclick="marcador( '#FFFF99' );" /></td>
</tr>
</table>
<iframe id="frmCentro" name="frmCentro" width="600px" height="400px" align="top" frameborder="1" src="teste.asp" scrolling="auto"></iframe>
</body>
</html>
Pergunta
Giovanicaf
Amigos estou precisando melhorar esta rotina de marca-texto e estou com alguns problemas:
O texto só é marcado na segunda vez que o botão é clicado por conta do designMode.
O usuário não poderia alterar a página, nem texto, nem figura, nem tabela. da mesma forma que com o designMode false.
Isso poderia ser resolvido se eu ligasse o designMode editasse e desliga-se mas quando ele é invocado faz refresh na página e só funciona da segunda vez quando o designMode está desligado.
Obs: A rotina funciona da seguinte maneira você marca o texto e clica no botão, mas por conta do problema só está funcionando da segunda vez.
No ie funcionou colocando o document.designMode para "Off" mas no firefox não funciona!!!
********* Arquivo index.asp *******************
********* Arquivo teste.asp *******************Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.