Ir para conteúdo

POWERED BY:

Arquivado

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

dead_thinker

Erro em função onload (Não Implementado!)

Recommended Posts

Galera, tenho uma função num include que em algumas páginas precisarei chamar no onload, mas não posso colocar na tag <body> dessas paginas porque todas as páginas do sistema utilizam tem o include que abre o body, sei que é estranho mas peguei o bonde andando e não posso modificar hehe.Dai to chamando a função no onload assim:window.onload = vacina();No Fx funfa beleza, mas no IE dá um erro, ta mais pra warning já que a função faz o que deveria fazer;o erro é "Não Implementado" porque a função ta no include :Dtem um jeito de chamar a função sem dar esse erro no ie?[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

window.onload = vacina;=P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz, q vergonha hehe, malz, n tinha tentado isso.Obrigado Fleury :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já passei por isso também ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

e como pode-se implementar uma função dessa maneira quando há a necessidade de passar um parametro?

 

exemplo

window.onload = funcao(true,'ativar');

Compartilhar este post


Link para o post
Compartilhar em outros sites

window.onload = function()

{

vacina( true, 'parametro' );

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa maneira funcionou apenas no IE, vou explicar a implementação que estou tentando fazer pra facilitar as coisas

 

estou fazendo um script para redimencionar um box

 

as funções que estão funcionando são

 

"tamanho(largura,altura)"

"getPosition(event)" que é cross-browser, o parametro 'event' tem que ser passado dessa forma, caso contrário não funciona no FF

 

veja em funcionamento http://www.mlbstudio.com.br/testes/

 

agora vem o problema

 

function resize()
{
if (resize.arguments[1] == 0) document.body.onmousemove = null; // passo esse parametro para 'desligar'
else
  {
  jota = getPosition(resize.arguments[0]); //pega a posição inicial na variavel 'jota'
  document.body.onmousemove = redimensionar(resize.arguments[0]); // 'liga' a função, é o que provoca o erro assim como o dead_thinker
  }
}

function redimensionar()
{
xis = getPosition(redimensionar.arguments[0]); //pega a posição inicial na variavel 'xis'
//var muda = new Array;
//muda[0] = (jota[0] - xis[0]) * 2; // diferença de largura
//muda[1] = (jota[1] - xis[1]) * 2; // diferença de altura
//var largura = document.getElementById('main').style.height; // captura largura atual
//var altura = (document.getElementById('interna').style.height + 16); //captura altura atual
//eval('tamanho(' + ( largura + muda[0] ) + ',' + ( altura + muda[1] ) + ')'); // mudança de tamanho
}

o parametro "event" é passado à funcão resize(), na chamada

 

como disse, a implementação sugeria pelo Willian funcionou no IE quando coloquei 'resize.arguments[0]' dentro de uma variável

 

oq eu preciso de ajuda é na implementação "document.body.onmousemove = redimensionar(resize.arguments[0]);" com a necessidade de passar esse parametro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código completo, com HTML para testarmos.

 

document.body.onmousemove = function()
{
    redimensionar(resize.arguments[0]); 
}

Assim que você postar o código, vou separar a sua duvida, pois já estamos fugindo do escopo do tópico,

Compartilhar este post


Link para o post
Compartilhar em outros sites

desde já, obrigado pela ajuda

 

o html

 

<!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=iso-8859-1" />
<title>.:: União Brasileira ::.</title>
<link href="extensoes/default.css" rel="stylesheet" type="text/css" />
<script src="extensoes/default.js" language="javascript" type="text/javascript"></script>
</head>

<body>
<div id="centroP1">
  <div id="centroP2">
    <div id="centroP3">
<div id="main">
  <div id="canto1"></div>
  <div id="canto2"></div>
  <div id="esquerda"></div>
  <div id="direita"></div>
  <div id="superior"></div>
  <div id="canto3"></div>
  <div id="canto4" style="cursor:nw-resize;" onmousedown="resize(event,1)" onmouseup="resize(event,0)"></div>
  <div id="interna">
    <div id="cantoInt1"></div>
    <div id="cantoInt2"></div>
    <div id="esquerdaInt"></div>
    <div id="direitaInt"></div>
    <div id="cantoInt3"></div>
    <div id="cantoInt4"></div>
    <div id="conteudo">
      <a href="#" onclick="tamanho(816,300)">816 x 300</a><br />
      <a href="#" onclick="tamanho(900,500)">900 x 500</a><br />
      <a href="#" onclick="tamanho(1000,600)">1000 x 600</a><br />
      <a href="#" onclick="tamanho(1160,600)">1160 x 600</a><br />
      <a href="#" onclick="tamanho(1160,800)">1160 x 800</a>
    </div>
  </div>
  <div id="inferior"></div>
</div>
    </div>
  </div>
</div>
</body>
</html>

 

 

JS

 

// Documento JavaScript de www.uniaobrasileira.org

function tamanho()
{
var largura = tamanho.arguments[0]
var elementosLargura0 = Array('main')
var qtd0 = elementosLargura0.length;
for (i = 0; i < qtd0; i++)
  {
  document.getElementById(elementosLargura0[i]).style.width = largura + 'px'
  }
var elementosLargura1 = Array('interna','superior','inferior')
var qtd1 = elementosLargura1.length;
for (i = 0; i < qtd1; i++)
  {
  document.getElementById(elementosLargura1[i]).style.width = (largura - 16) + 'px'
  }

var altura = (tamanho.arguments[1] - 16 )
var elementosAltura0 = Array('esquerda','direita','interna')
var qtd2 = elementosAltura0.length;
for (i = 0; i < qtd2; i++)
  {
  document.getElementById(elementosAltura0[i]).style.height = altura + 'px'
  }
var elementosAltura1 = Array('esquerdaInt','direitaInt')
var qtd3 = elementosAltura1.length;
for (i = 0; i < qtd3; i++)
  {
  document.getElementById(elementosAltura1[i]).style.height = (altura - 10) + 'px'
  }
var elementosAltura2 = Array('conteudo')
var qtd4 = elementosAltura2.length;
for (i = 0; i < qtd4; i++)
  {
  document.getElementById(elementosAltura2[i]).style.height = (altura - 20) + 'px'
  }
}

function getPosition(e) {
	var cursor = new Array;	
    if (e.pageX || e.pageY) { //Firefox, Chrome & Safari
        cursor[0] = e.pageX;
        cursor[1] = e.pageY;
    } 
    else { // IE
        cursor[0] = e.clientX + 
            (document.documentElement.scrollLeft || document.body.scrollLeft) - 
            document.documentElement.clientLeft;
        cursor[1] = e.clientY + 
            (document.documentElement.scrollTop || document.body.scrollTop) - 
            document.documentElement.clientTop;
    }
    return cursor;
}

function resize()
{
if (resize.arguments[1] == 0) document.body.onmousemove = null;
else
  {
	jota = getPosition(resize.arguments[0]);
  document.body.onmousemove = function()
    {
    redimensionar(resize.arguments[0]);
    }
  }
}

function redimensionar()
{
var xis = getPosition(redimensionar.arguments[0]);
var muda = new Array;
muda[0] = (jota[0] - xis[0]) * 2;
muda[1] = (jota[1] - xis[1]) * 2;
var larguraAtual = document.getElementById('main').style.height;
var alturaAtual = (document.getElementById('interna').style.height + 16);
eval('tamanho(' + ( larguraAtual - muda[0] ) + ',' + ( alturaAtual - muda[1] ) + ')');
}

 

 

dessa forma que você propos deu erro "resize.arguments.0 não está definido"

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.