Action "anti anti-object"

Rechercher

Action "anti anti-object"

Par arbilus  -  11 reponses  -  Le 03/10/2010 15:50  -  Editer  - 

Bonjour, j'ai un problème concernant les iframes / objects . Le site contenu dans l'iframe/l'object a mis un anti-iframe . Donc il m'est impossible de l'afficher dans mon iframe/object car à chaque fois qu'il détecte cela il fait rediriger ma page entierement vers son site . Le problème c'est que si j'utilise les iframes pour afficher son site c'est que j'ai besoin de savoir si par exemple le visiteur a sa souris dessus :

Code :
1.

Donc à cause de son anti-iframe, impossible de faire ça ! Alors j'aurais aimer savoir s'il serait possible de détecter (en l'occurrence, selon l'exemple donné) le passage de la sourie DANS UNE NOUVELLE FENETRE . Ainsi ça donnerait un truc du genre:

Code :
1. xxxx et on pourrait "agir" telle une iframe avec cette nouvelle fenêtre ouverte.

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 03/10/2010 16:26  -  Haut de page  - 

SI la nouvelle fenêtre a été ouverte depuis la première, c'est effectivement possible : fais une petite recherche sur JavaScript à propos de communication entre fenêtres. Reste le problème d'afficher l'autre site en gardant la main sur la page, là, c'est pas gagné.

Bien franchement, je n'en saisis pas vraiment l'intérêt... et ensuite, si son éditeur n'est pas au courant, tu risques d'avoir des problèmes le jour où il le découvrira.

 
Par arbilus  -  Le 03/10/2010 17:14  -  Haut de page  - 

"Reste le problème d'afficher l'autre site en gardant la main sur la page, là, c'est pas gagné."

->Comment ça, si ma page n'a plus le focus elle ne "réagit plus" ?

 

PS1: Je crois pas que j'aurais des problèmes car s'il met l'anti-iframe c'est uniquement pour que son site soit affiché en pleine page et pas pour empêcher d'autres sites d'interagir avec le sien .

PS2: Normal que tu n'en vois pas l'intérêt, c'est sûr que si je te le dit pas tu risque pas de trouver :) .

 
Par Cyrano  -  Le 03/10/2010 17:43  -  Haut de page  - 

S'il n'est pas au courant, il pourrait te créer des problèmes en soulevant le fait que tu profites de la popularité de son site pour attirer de la fréquentation sur le tien et accessoirement te réclamer un dédommagement qu'un tribunal pourrait assez logiquement lui accorder... à tes frais s'entend.

 

Sinon à partir du moment où le focus est sur ta page ou dans la nouvelle fenêtre, tu peux le détecter. Quant à savoir quel point de la nouvelle fenêtre est survolé, ça va être compliqué parce qu'il faudrait que tu puisses ajouter du JavaScript dans sa propre page pour communiquer l'information à la page parente, ce qui n'est bien entendu pas possible à priori : sans iframe ni frame tout court, je crains que tu ne puisses pas réaliser ça.

J'ajouterais que c'est quand même normal que ce genre de restriction existe, sinon ce serait la porte ouverte à tous les abus et plus personne n'aurait la garantie du contrôle total de ses propres pages.

 
Par arbilus  -  Le 03/10/2010 17:54  -  Haut de page  - 

Non, je ne cherche pas à trouver où le type clique ou autres.. (Quoi qu'on pourrait le savoir, mais c'est vraiment pas facile !), je cherche simplement à savoir s'il a cliqué sur la nouvelle fenetre (J'ai déja trouvé le script pour arriver à savoir si le type a cliqué sur une iframe).

Donc pour en venir au concret : voila ce que j'ai fait :

J'ai utilisé les popup pour cela:

 

<A href="javascript:ouvre_popup('http://google.com')">Ouverture d'un popup</A> <SCRIPT language="javascript">    function ouvre_popup(page) {        window.open(page,"name","menubar=no, status=no, scrollbars=no, menubar=no");    } </SCRIPT>

 

 

Et voila une partie du script qui détecte les cliques sur différents éléments de la page.

 

var element = document.getElementsByTagName("object");

 

 

Cette partie est celle qui déclare quel est l'élément à vérifier .

Je cherche donc à faire en sorte que la var element soit "la nouvelle fenetre/popup ouverte" . Comme ça quand le type cliquera sur la nouvelle fenetre, le clique sera compté .

Mais je ne sais pas comment sélectionner cette popup ..

 
Par Cyrano  -  Le 03/10/2010 18:05  -  Haut de page  - 

Le problème reste le même : tu souhaites capturer un évènement dans une page sur laquelle tu n'as pas le contrôle du code. Je peux me tromper, mais à mon avis tu ne pourras pas le faire sans que cette page soit intégrée dans un frame.

As-tu fait la recherche que j'ai suggéré plus tôt ?

 
Par arbilus  -  Le 03/10/2010 18:15  -  Haut de page  - 

Oui j'ai regardé . Mais je ne vois pas pourquoi je ne pourrais pas y arriver. Après tout il n'y a que peu de différence entre afficher un site dans un iframe et l'afficher dans une popup.. Enfin je pense, puisque les 2 sont "liés" à la page parent .

 
Par Cyrano  -  Le 03/10/2010 18:21  -  Haut de page  - 

Parce qu'un frame est déjà à l'intérieur d'une page sur laquelle tu pourrais agir : un popup contient déjà une page complète et si cette page a une source provenant d'un serveur externe sur lequel tu n'as pas accès, tu ne pourras pas rajouter le code JavaScript nécessaire à une quelconque capture d'évènement, ce que tu pourrais en revanche faire avec un (i)frame en insérant le JS dans l'en-tête avant le bloc de frameset ou l'objet iframe.

 
Par arbilus  -  Le 03/10/2010 18:31  -  Haut de page  - 

En l'occurence voici le script de détection de clic. Et il n'est pas dans l'en-tête avant l'iframe .

Je n'ai jamais compris ce script ^^... Je l'ai trouvé sur un site américain (yes we can ?)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Detect IFrame Clicks</title><script type="text/javascript"> var isOverIFrame = false; function processMouseOut() {log("IFrame mouse >> OUT << detected.");isOverIFrame = false;top.focus();} function processMouseOver() {log("IFrame mouse >> OVER << detected.");isOverIFrame = true;} function processIFrameClick() {if(isOverIFrame) {// replace with your functionlog("IFrame >> CLICK << detected. ");}} function log(message) {var console = document.getElementById("console");var text = console.value;text = text + message + "\n";console.value = text;} function attachOnloadEvent(func, obj) {if(typeof window.addEventListener != 'undefined') {window.addEventListener('load', func, false);} else if (typeof document.addEventListener != 'undefined') {document.addEventListener('load', func, false);} else if (typeof window.attachEvent != 'undefined') {window.attachEvent('onload', func);} else {if (typeof window.onload == 'function') {var oldonload = onload;window.onload = function() {oldonload();func();};} else {window.onload = func;}}} function init() {var element = document.getElementsByTagName("object");for (var i=0; i<element.length; i++) {element[i].onmouseover = processMouseOver;element[i].onmouseout = processMouseOut;}if (typeof window.attachEvent != 'undefined') {top.attachEvent('onblur', processIFrameClick);}else if (typeof window.addEventListener != 'undefined') {top.addEventListener('blur', processIFrameClick, false);}} attachOnloadEvent(init); </script></head><body><object type="text/html" style="height:300px; width:400px" data="http://google.fr"></object><br></br><br></br><form name="form" id="form" action=""><textarea name="console"id="console" style="width: 100%; height: 300px;" cols="" rows=""></textarea><button name="clear" id="clear" type="reset">Clear</button></form>  </body></html>
 
Par Cyrano  -  Le 03/10/2010 19:13  -  Haut de page  - 

Mais c'est ce que je m'efforce de te faire saisir : ça peut fonctionner avec une page comportant un iframe : pas dans une page individuelle externe ouverte dans une autre fenêtre ou un autre onglet. Or tu as précisé qu'un code empêchait d'insérer la page externe dans un iframe et redirigeait automatiquement la page complète vers le site complet.

Quel que soit le script, ça n'a aucune importance, c'est dans le principe de fonctionnement lui-même que ça bloque. Le code que tu montres ne peut fonctionner qu'à la condition de pouvoir accéder à l'objet contenant la page à surveiller : mais comme tu ne pourras pas inclure ce code dans la page de l'autre site, c'est mort d'avance. Et la communication des fenêtres en JavaScript est très limitée.

 

J'ajoute quand même que ce serait beaucoup plus formateur de comprendre et d'apprendre à coder toi-même plutôt que de tenter de bidouiller le code des autres. Et celui-ci n'est pas vraiment très compliqué : si tu n'en comprends pas le fonctionnement, je ne pourrai pas y faire grand chose, il faut que tu rentres dans le code JavaScript et que tu apprennes. Il sera possible de t'apporter un peu d'aide lorsque tu bloqueras sur un point du langage ou un fonctionnement particulier, mais personne ne modifiera pour toi un code que tu n'auras pas écrit ni compris, au moins dans sa structure.

 
Par arbilus  -  Le 03/10/2010 21:23  -  Haut de page  - 

Je ne demande pas que tu le modifie pour moi . Surement pas . Si je te le donne c'est uniquement pour t'aider à m'aider (Oo) .

Par contre c'est vrai :) : le javascript je débute depuis peu, mais je l'apprend de façon moins ennuyante que de lire des leçons etc.. Je le pratique en bidouillant des codes, en les combinant entre eux, en prenant un morceau d'un puis d'un autre pour créer ce que je veux . C'est vrai c'est pas très propre. Mais j'ai fait la même chose pour le php et résultat Il y a peu de temps je n'y comprennais RIEN, et maintenant je le lit comme un livre et je l'écrit facilement. Certe, je connais pas tous du php et de ses possibilités, mais en tout cas j'ai fait des progrès énormes depuis ^^ .

Concernant ce que j'aimerais faire... Je sens à mon grand désespoir que ce n'est encore pas possible. Dommage .

 
Par Cyrano  -  Le 03/10/2010 22:10  -  Haut de page  - 

C'est une approche, mais à mon sens pas la meilleure pour avancer efficacement.

Si tu veux apprendre, vas-y par étapes en créant toi-même tous tes codes : il est certain qu'au début tu ne feras peut-être pas des choses extraordinaires, mais en revanche, tu avanceras plus rapidement dans la compréhension de la manière de structurer un programme, que ce soit en PHP ou en JavaScript ou n'importe quel langage de programmation. Il est aussi important de comprendre ce qui peut ou non être fait avec un langage, à quoi il est ou non adapté, quel est son périmètre d'action. Ici en l'occurrence, le JavaScript est limité à la page en cours et éventuellement à ses pages filles dans une certaine limite. Le JavaScript manipule des objets du DOM (Document Object Model), ça, c'Est le principe de base fondamental : reste maintenant à saisir ce qu'est le DOM.

Les leçons ne sont pas toutes de qualité j'en conviens, mais les ignorer toutes n'est pas pour autant la bonne manière. Je suis moi-même autodidacte et je me suis goinfré pas mal de livres avant d'en arriver à mon niveau actuel, des tutos sur Internet, et les forums. Le JavaScript n'est pas le plus facile et rebute pas mal de développeurs. Un formateur m'a dit un jour que pour vraiment le maitriser à fond, il faudrait le pratiquer à plein temps pendant quasiment un an. Tu devrais essayer la suite de tutos du site du zéro (), je ne les ai pas lus, mais ce site a habituellement de bonnes références de base utiles et pratiques.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |