Ir para conteúdo
Fórum Script Brasil

KaKarotto

Vencedores de desafio
  • Total de itens

    1.243
  • Registro em

  • Última visita

Tudo que KaKarotto postou

  1. Layer !?!?!??! :huh: Cara, você está usando uma porrada de tags aí que não são padrões html :s. Seja lá de onde tenha pego esse código, nunca mais retorne a este site rsrs. Existe várias implementações de banner com flash aqui no fórum, dá uma procurada. Abraços.
  2. Galera, só um adendo. String ainda não é considerada vetor de caracteres completamente na versão atual do javascript. Embora a maioria dos navegadores já implementem essa funcionalidade, nem todos irão implementar justamente por não estar especificada na versão atual. No ie6 não funciona. Não sei os outros ie´s. Para garantir compatibilidade usem charAt(index) ao invés de "string"[index]. Abraços.
  3. Então Rafael, eu ia postar isso no blog esses dias, mas já que adiantou e leu meus pensamentos vou tentar explicar uma forma que eu imaginei de usar interfaces em javascript. Raro esse tipo de dúvida aqui no fórum, estou gostando disso rsrs. Eu tenho duas classes, uma é Carro e outra é Moto. As duas aceleram, fream e tem velocidade. Então eu utilizo uma interface que será "motor", pois ambos têm motor. Classe carro: var Carro = { Class : function(){ var velocidade = 0 Interface.motor.call(this, velocidade) } } Classe moto: var Moto = { Class: function(){ var velocidade = 0 Interface.motor.call(this, velocidade) } } Agora a interface motor: Interface = { motor : function(velocidade){ this.acelerar = function(){ velocidade += 10 } this.frear = function(){ velocidade -= 10 } this.velocidade = function(){ return velocidade } } } Encapsulado no objeto Interface, motor está sendo chamado nas duas classes através do método call. Call irá chamar as funções passando dois argumentos. O primeiro é o escopo, que definimos this nas classes. O segundo parâmetro de call irá passar a velocidade como argumento para a chamada da função motor(). É a princípio complicado entender, porque javascript é prototipal e funciona sempre com funções. Imagine que a função motor está sendo chamada de dentro das duas classes usando o próprio escopo delas, já setando as funções e usando a variável privada velocidade, passada como argumento do call da função motor. Então: var mercedes = new Carro.Class mercedes.acelerar() mercedes.velocidade() // 10 var honda = new Moto.Class honda.acelerar() honda.velocidade() // 10 Usando as mesmas funções para os dois objetos. E você pode também nas classes reimplementar os métodos herdados da interface se precisar. A lógica é complicada, mas a estrutura bem simples de se usar, e na minha opinião uma forma elegante de se usar interfaces dinâmicamente com javascript. Abraço.
  4. Dá. Pra que você precisa disso ? É necessário instanciar um objeto que herda de uma classe abstrata realmente ? Será que não quer apenas compartilhar algum método que já existe? Se este for o caso, então use interfaces, ao invés de um método abstrato.
  5. Escape os simbolos. document.write("<div class="g1">"); document.write("<script src="http://g1.globo.com/Portal/G1V2/js/addNewsHorizontal.js" type="text/javascript"><\/script>"); document.write("</div>"); Se lá o que for isso, tá feio... E se o addNewsHorizontal fizer algo com o div g1, então vai dar um erro também, se for esse o caso, bote o script abaixo do div.
  6. Eu não faço a menor idéia... Cara, quer um conselho ? Usa jQuery. <_< Naquele seu esquema era só fazer um $('#menu').slideDown() E pronto.. Movendo -> HTML para Javascript.
  7. Existem várias formas de se pegar os elementos pela class. jQuery é o jeito mais fácil. Mas se der uma procurada no google verá várias implementações de getElementByClass. Eu publiquei uma forma, há um tempinho no clientside, se quiser tem lá: http://clientside.com.br/mais-importante-q...o-que-procurar/
  8. Não está caindo no if. Não uso o Windows VIsta, você precisará saber o que retorna o método:navigator.userAgent Poste a string que ele retorna, se tiver como testar no seu pc.
  9. Eu não consigo entender se o seu problema é o js, a lógica, ou os métodos que usa para fazer esse programa. Esquecendo completamente o código, tem como só por texto, explicar em pseudo código o seu problema ? Tipo, lista em passos o que precisa fazer.
  10. Talvez seja porque o var interval esteja dentro do escopo da função MostraSlide_play. Não consigo entender sua lógica, o código está um pouco bagunçado estou dando um tiro no escuro. Tire o "var" do intervalo da função MostraSlide_play. Parece que está tendo problemas de escopo aí. Melhore a formatação do seu script, indente o código de forma a tornar um pouco mais agradável ao ler. Moisés, está postando várias vezes para o mesmo problema. Isto nos dá 2 problemas. A primeira é ficar moderando esses tópicos... o que é tremendamente chato. O segundo e mais importante é que você ao invés de convergir o seu problema para um lugar só, você diverge, e fica mais difícil para quem está acompanhando o seu problema te ajudar. A pessoa que tenta ajudar e vê 3 tópicos distintos falando a mesma coisa, perde completamente o interesse no seu problema.
  11. Algumas vezes o problema é apontado em uma linha, mas não está bem ali na linha. Isso pode ser por várias razões... Se tiver como mostrar o site funcionando, seria mais fácil saber onde está o erro. Você não alterou nada no html ? ou não movimentou o script de posição na página ? Alguma coisa deve ter feito antes do problema começar.
  12. QUando um erro acontece, significa que algo está funcionando errado e você tem que descobrir o que é. Fingir que o erro não existe pode complicar ainda mais a medida que vai colocando mais funcionalidades no seu site. O firebug é o melhor amigo do desenvolvedor, ele deve apontar exatamente qual erro é e em qual linha. Se tiver o site no ar, posta o link, pelo firebug dá pra saber exatamente o que está acontecendo. Refresh único não é a solução, muito pelo contrário, vai piorar ainda sua vida, porque vai ter que manipular cookies. Meu conselho é, conserte o erro.
  13. Por que o html é renderizado de cima pra baixo. O seu script é a primeira coisa a acontecer, se é a primeira coisa a acontecer, o elemento que você está pegando pelo Id não existe ainda. 3 soluções. 1 - usar window.onload = function(){ } e botar dentro dessa function toda a sua funcionalidade. 2 - usar uma biblioteca para saber quando o documento foi carregado para executar sua função. 3 - Melhor de todas, colocar as tags scripts sempre no final da tag body, mas dentro da body, e em cima o html.
  14. Existe uma propriedade chamada window.opener. windoow.opener se refere à janela mãe que chamou a janela filha. Se na janela mãe você tem uma função que fará alguma coisa com os dados chamada "funcaoRecebedados" por exemplo, bastaria nessa pop chamar a função passando os dados. window.opener.funcaoRecebedados(urldaimagem, descricao) Essa funcaoRecebedados faz parte da janela mãe, não se esqueça. Moisés, use as tags de código no seu post por favor meu filho...
  15. AEEEEEEEee pequeno Jedi. Só precisa ler os posts com atenção que a coisa vai que vai. Boa sorte aí na sua empreitada. Matheus, você acabou que não falando nada... -_- Tópico resolvido ;)
  16. Movido tópico de Html para Javascript. =)
  17. Moisés, acho que você não leu 1 só linha do meu post... 1º você não usou tags de código como eu pedi. 2º você ainda está usando dois elementos com o mesmo id, e eu já falei que isso não se deve fazer. Um exercício de interpretador para você. box 1 : id ="box" box 2 : id = "box" document.body.removeChild( document.getElementById('box') ) Qual dos boxes acima, o comando de remover vai ser aplicado ? ids é uma variável que contém uma string que vai ser o id dos dois div´s que você cria. Essa variável está sendo usada para dar id´s à duas divs. De novo, NÃO PODE EXISTIR 2 ELEMENTOS COM O MESMO NOME NO ATRIBUTO ID!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  18. Vlw Jonathan !! Lembrando que sugestões são sempre bem vindas. Dá pra adicionar novos métodos, se alguém sentir a necessidade de mais métodos é só implementar num post aqui nesse tópico mesmo, ou pedir que eu faço. ^_^
  19. Moises, tente utilizar as tags de código por favor, se possível também indente o código pra facilitar a visualização. Não sei o que é esse elemento de id 'mouse' e 'receptor'. O código ta incompleto, não dá pra ajudar muito. Você cria duas divs, uma chamada "novaDIV_clic" e a outra "novaDIV". As duas, pelo seu código, terão o mesmo id. Só pode existir um ID único num html. O javascript não consegue distinguir qual pegar se definir mais de um e consequentemente, não consegue remover os nodos da forma que está tentando fazer. E sim, tem como excluir os elementos html.
  20. E aí povo! To postando aqui um objeto que fiz chamado Random. Ele faz três coisas básicamente. 1ª - Pega um número randômico no intervalo de 0 até o número passado como argumento: Random.get(10) No exemplo acima ele pega um número de 0 a 9. 2ª Pega um número randômico no intervalo de 0 até o número passado como argumento E não repete os números tirados anteriormente. Random.pick(10) No exemplo dado, se você chama 10 vezes a Random.pick, terá números aleatórios de 0 a 9. Se chamar 11 vezes, na 11ª vez vai retornar null, ou seja, ele informa que todos os números já saíram. Então, se quiser zerar e começar de novo, basta chamar a função reset: Random.reset() Random.pick(10) Ele vai resetar o objeto Random, e vai começar de novo a sortear os números de 0 a 9. 3ª Retorna uma cor aleatória no formato hexadecimal. Random.color() Não é preciso passar parâmetros nessa função. As outras funções retornam números, essa vai retornar uma string em hexa assim: "#3a45bd", por exemplo. Não vou anexar um arquivo desta vez, vou deixar o code aqui colado para quem quiser esse objeto. /* * Desenvolvido por: Eduardo Ottaviani * Licença : Pública * Email : edu.tata@gmail.com * Obs : Métodos com underscore são métodos usados internamente pelo objeto Random, use-os apenas se entender o seu funcionamento. * Url : http://scriptbrasil.com.br/forum/index.php?showtopic=145754 */ var Random = { _run_ : function(range){ return Math.floor(Math.random() * range) }, _aux_: { cont : 0 }, pick : function(range){ if( this._aux_.cont ++ >= range ) return null var out = this._run_(range) while(out in this._aux_) out = this._run_(range) this._aux_[out] = null return out }, reset : function(){ this._aux_ = {cont:0} }, get : function(range){ return this._run_(range) }, color : function(){ var hexa = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f"] var ret = "#" for (var x = 0; x < 6; x++) ret += hexa[ this.get( hexa.length ) ] return ret } }
  21. Boa galera =) Essa é uma tentativa nossa de tornar mais visível e palpável o uso de orientação à objetos em Js, mostrando como usá-los na vida real. Este tópico é um arquivo contendo todos os scripts postados na área de repositório, porém, com implementação através de Classes. Classe AjaxAutor: Jonathan Queiroz Descrição: Classe criada com o objetivo de facilitar a utilização de AJAX Link: http://scriptbrasil.com.br/forum/index.php?showtopic=145629 Classe Ajax.ClassAutor: Eduardo Ottaviani (KaKarotto) Descrição: Outra classe simples para manipulação de ajax. Link: http://scriptbrasil.com.br/forum/index.php?showtopic=145632 W3CookiesAutor: Leandro Vieira Modificado por: Eduardo Ottaviani (KaKarotto) Descrição: Código pronto para manipular facilmente os cookies. Link: http://scriptbrasil.com.br/forum/index.php?showtopic=114908 jsMaskAutor: Eduardo Ottaviani (KaKarotto) Descrição:Objeto Javascript para Mascarar campos de formulário. Link: http://scriptbrasil.com.br/forum/index.php?showtopic=135530 RandomAutor: Eduardo Ottaviani (KaKarotto) Descrição:Objeto Javascript para gerar números e cores aleatórios. Link: http://scriptbrasil.com.br/forum/index.php?showtopic=145754
  22. Obrigado Jonathan!! Gostei muito do seu comentário e da sua classe também, eu vi como implementou a fila para múltiplas requisições, planejo futuramente fazer o mesmo nessa classe aqui. =P Quanto ao método sucess, ele é apenas uma simplificação do state, para uma usagem rápida, coisa simples. Mas não descarto estender a classe para métodos mais complexos, por isso fiz esse esquema do método Lite, que são apenas funções mais simples... Agora os métodos Call e Apply. São muito muito úteis. Uso bastante os dois. O apply utilizo muito para herança de classes. Eles funcionam assim. funcao.call ( escopo, argumento1, argumento2, argumento3... ) A primeira opção é o escopo que deseja que a função execute. funcao.apply(escopo, [ argumento1, argumento2, argumento3 ...] ) Parece besteira, mas em MUITOS casos é necessário o uso do call. O apply geralmente é usado quando você tem um array e por algum motivo precisa passar cada elemento do array como argumento de uma função. Exemplo de call: var fn1 = function(a, b, c, d, e){ alert(this.nome) alert(b) } Se eu executar essa fn1, ela vai alertar um undefined no primeiro alert, porque no escopo atual dela, não existe a propriedade this.nome. Então dessa forma, a função fica bem genérica. Posso então usar o call para passar um escopo para ela: var objeto = { nome : "Eduardo Ottaviani", sexo : "Sempre" } fn1.call(objeto, 1, 2, 3, 4, 5 ) Agora sim, ela é executada no escopo do "objeto", vai alertar meu nome e vai alertar o argumento b que vale 2. No apply é a mesma coisa, só que passo um array com os argumentos: fn1.apply(objeto, [1, 2, 3, 4, 5] ) Repare que o call tem infinitos parâmetros. Já o apply tem apenas dois, um escopo e o segundo um array. Os dois ali em cima darão o mesmo resultado. Referências: Onde aprendi primeiramente: http://juliogreff.net/funcoes-em-diferentes-escopos/ Mozilla Developer Center - Métodos Call e Apply: https://developer.mozilla.org/en/Core_JavaS...s:Function:call https://developer.mozilla.org/en/Core_JavaS.../Function/apply Abraços o/
  23. E aí galera ;) Resolvi compartilhar com vocês uma classe que fiz para manipulação bem simples em Ajax. Como é uma coisa muito procurada, acho que vale a pena oferecer mais uma opção, além das já existentes no fórum. Essa classe é uma melhora de uma interface que eu havia feito e a intenção dessa classe a princípio é ser o menos verbosa, o mais simples de se usar possível. Portanto ela tem poucos métodos, apenas 5. Essa classe gera um objeto com apenas um método, o método Lite, e este método vai retornar um dos 5 métodos existentes na classe. Apenas 4 dos métodos serão os mais usados, um deles descreverei no final a sua funcionalidade. Existem dois métodos Controllers e dois métodos Executioners, você só precisará usar um de cada. Um método Controller e um método Executioners, a escolha de qual será sua. Controllers Uso: var ajax = new Ajax.Class ajax.Lite(':sucess')(function(resposta){ document.getElementById('conteudo').innerHTML = resposta }) Uso: var ajax = new Ajax.Class ajax.Lite(':state')(function(state, response){ if(state == 3) lista.innerHTML = "<li>Aguarde, carregando...</li>" else if(state == 4) lista.innerHTML = response }) Estes são os métodos controllers, e não executam o ajax em si, mas configuram como o ajax deve se comportar de acordo com a sua necessidade. Os métodos executores é que farão a requisição propriamente dita: Executioners Uso: var ajax = new Ajax.Class ajax.Lite(':get')('/includes/respose.php?nome=Eduardo Ottaviani') Uso: var ajax = new Ajax.Class var param = 'nome=Eduardo Ottaviani&amp;idade=25' ajax.Lite(':post')('page.htm?' + param, { 'encoding' : 'ISO-8859-1', 'Content-length' : param.length }) Existe ainda um método Setter como eu havia dito anteriormente, que serve apenas para deixar a classe mais dinâmica, dando uma opção para setar o valor da requisição assíncrona em true ou false. Uso: var ajax = new Ajax.Class ajax.Lite(':async')(false) O recomendado é deixar padrão, que é true. Esta é mais uma solução para facilitar o uso do Ajax de forma bem simples. Anexei um zip contendo um html que demonstra de forma prática o uso da classe. Ajax.Class.zip
  24. Boa Jo, Cara, as vezes eu acho que você lê minha mente... Eu ia postar esses dias uma classe ajax =\ e ainda ia usar o mesmo título....agora vou ter que pensar em outro ¬¬ Boa man, vai ajudar bastante.
  25. Seja muito bem vindo Fulvio. Sua ajuda será muito boa para nós. Abraços e sucesso!
×
×
  • Criar Novo...