Jump to content


Photo

Javascript Dentro De Um Object...


  • Faça o login para participar
21 replies to this topic

#1 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 27/07/2008, 13:38

Acredito que seja possível, e na bem da verdade espero que seja.

Já que IFRAME está quase em desuso pelo que andei lendo, a tag OBJECT pode fazer o mesmo serviço sendo válida em XHTML (por enquanto)

Assim, isso funciona normalmente:

<object data="arquivo.html" type="text/html" width="1" height="1" id="enhancements"></object>
O que eu queria fazer é, dentro desse arquivo.html incluir quaisquer rotinas JavaScript que manipulem o(s) elemento(s) da página que inclui essa tag OBJECT, no caso index.php

Como não sei como fazer, tentei, humildemente assim:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled</title>
<script type="text/javascript">
document.getElementById('submitsearch').onclick = function()
{
	alert( 'OI!' );
	return false;
}
</script>
</head>
<body>
Enhancements fake IFRAME
</body>
</html>
E na página, além de incluir a tag descrita no primeir CODE, tenho um campo de busca com botão de envio submit de ID submitsearch

Mas não funcionou como esperado <_<

Acredito que deveria aparecer um alert com a palavra "OI" e em seguida cancelar a ação do clique no botão (que encaminha para a ação de busca)

Tentei trocar document por parent acreditando ser o mesmo princípio das popup que atualizam algo na janela que a abriu, mas também não funcionou.

É possível fazer isso?

#2 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 27/07/2008, 13:57

Bruno, eu entendi o que você quer fazer, mas não entendi porque você não pode usar um include em php e evitar esse trabalho todo? (visto que pela extensão da tua index, tu pode usar php) :ponder:

Pelo que entendi, tu quer incluir outra página na atual usando OBJECT, e dentro do código dessa página incluída, colocar uma função em javascript que vai trabalhar manipulando um elemento da página pai ?
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#3 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 27/07/2008, 14:20

Exatamente.

Eu até estou tentando, em paralelo, fazer em PHP, reconstruindo o site de terceiro que quero acessar e tal, mas vai dar muito trabalho visto que tenho que separar conteúdo (já fiz), corrigir URL's relativas para absolutas só para poder adicionar maior performance ao serviço.

Pelo que você disse é possível, certo? Então vamos lá, você ensina, eu aprendo :P

P.S.: Eu ACHO que a página original é .PHP. Tá com Rewrite ^^

Edição feita por: Bruno Augusto, 27/07/2008, 14:21.


#4 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 27/07/2008, 16:15

Então, fiz uns testes aqui e com window.parent funcionou no Safari, Opera e FF. Nos IEs (tanto 6 quanto 7) não rolou. Teria que descobrir um meio alternativo para eles.

window.parent.document.getElementById("teste")

-> window.parent
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#5 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 27/07/2008, 17:19

Certo. Localmente funcionou, tipo entre dois arquivo meus.

Até se hospeda-se online funcionaria.

Ms qundo uso dentro desse serviço, não funciona. Após "salvo" esse conteúdo no serviço, a tag OBJECT fica dentro do BODY (óbvio), assim como os elementos que quero manipular.

Tem alguma coisa a ser feita no JavaScript para que este passe a "encontrar" os elementos? Não sei, colocar a tag script no BODY, no HEAD, dentro do onLoad da "windo" ou em outro evento...

#6 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 28/07/2008, 07:35

Ms qundo uso dentro desse serviço, não funciona.


Cara, pode até ser sono (7:35 aqui agora), mas... que serviço? :huh: Não entendi o que tu quiser dizer ali.
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#7 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 28/07/2008, 09:00

É um serviço de blog, confessei, pronto.

Eu queria poder incluir uns JavaScript pra torna mais caprichado e destacar melhor. Não tenho grana pra domínio ou hospedagem e muito menos paciência pra atualizar WordPress a cada mês e plugins a cada dois dias. Então apelo pra serviços gratuitos.

Minha intenção não é hackear o sistema através de AJAX e tal, é só melhorar com efeitos simples: Lightbox, Zoom e etc..
Na verdade nem imagino como que se hackeie um site ^^

Po isso que queria saber.

#8 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 28/07/2008, 09:04

Ah, agora entendi a sacanagem que tu quer fazer haha

Sinceramente, não sei como funcionam esses sites. Nunca mexi em nenhum deles. Talvez bloqueiem (?) esse tipo de operação, ou coisa do tipo...

Tem que ver com alguém que entenda mais dessa área, não vou te passar uma coisa que não tenho certeza, mas acho que pode ser algum bloqueio... justamente para evitar mais pessoas fazendo essas "gambi" aí :P
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#9 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 28/07/2008, 11:12

Certo.

Mesmo que seja gambi, existem outras possibilidades?

Porque do jeito que eu fazia antes de tu ter me passado o window.parent, assim:

window.onload = function()
{
	 alert('teste');
}
Funcionava por executar quando a "janela estava pronta" (acredito que seja quando os nós DOM estão resolvido, na verdade).

O caso é que teria que ser "quando o corpo (BODY) estiver pronto", ou algo do gênero.

#10 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 28/07/2008, 11:27

Já tentou usar algum framework (mootools, jquery...)?

Eles normalmente são utilizados dentro de uma função que verifica se a árvore DOM está pronta, carregada.

ex:

$(document).ready(function(){
//comandos aqui
}

edit: Dá para fazer no evento onload do BODY, sem framework nenhum. Mas pelo que entendi, tu não tem acesso a ele.

Edição feita por: Firehalk, 28/07/2008, 11:30.

BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#11 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 28/07/2008, 11:52

Exato, não tenho acesso a estrutura XHTML.

A intenção, de fato, é usar framework (querida jQuery). Não consigo mais programar JS sem ela ^^

Mas, sem framework, existe...isso:

body.onload = function
{
	 alert( 'teste' );
}

?

#12 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 28/07/2008, 13:55

window.onload = function(){};

Sinceramente eu ainda não entendi o que você quer fazer. :wacko:
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#13 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 28/07/2008, 20:31

Agora estou num notebbok e não tenho paciência para testar (touchpad me deixa nervoso), mas eu disse que tentei window.onload, mas por alguma razão, seu eu colocarneles só um alert funciona, mas se tentar manipular algum elemento dá zica.

Como disse também, faz muito tempo que não programo JavaScript "na unha". Framework facilitademais, então pode ser que eu tenha feito alguma bobagem. Entã amanhã teremos o tira-teima.

#14 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 29/07/2008, 12:19

Seria bom entender o real objetivo da coisa. Eu li seu post acima mas não entendi ... o seu segredo está matando ... ^.^
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#15 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 31/07/2008, 13:28

Testei e retestei várias vezes e não funciona para o objetivo que eu queria.

É uma pena, mas terei realmente de esperar num futuro sem data a implementação de uso de JavaScript externo pelo serviço.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq