mixer java avec javascript pour gerer les evenement sur un iframe

mixer java avec javascript pour gerer les evenement sur un iframe - HTML/CSS - Programmation

Marsh Posté le 08-08-2014 à 00:20:47    

J'ai un gros problème et je ne sais pas si elle peut être résolue ou non. Je veux gérer le comportement d'un utilisateur dans l'iframe (quand il bouge la souris ou cliquez sur ou sélectionnez un texte à partir de cette iframe) mais le problème que je dois faire un traitement à la session de l'utilisateur, donc je dois gérer les événements de la souris via servlets, mais il semble impossible. Maintenant, je suis en train d'utiliser Javascript mais je ne suis pas sûr si je peux obtenir la session de la servlet et transmettra également à la servlet. s'il vous plaît vous une idée sur ce problème. c'est ma page JSP J'ai juste essayé ici de tester la selection du texte mais il ne fonctionne pas. Et que dire de l'appel de la session dans le code Javascript si il est possible .
 
ce bout de code permet de detecter le texte selectionné par l'utilisateur dans l'iframe, mais ne veut marcher j'ai essayé des milliers de codes sans rien avoir
 
 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
       
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
 <head >
        <meta charset="utf-8" />
        <title>FUZZY SEARCH ENGINE</title>
        <link type="text/css" rel="stylesheet" href="inc/style.css" />
</head>
<body id="page2">
<div style="margin-top:90px"> <span style="color:#FFFFFF; font-size:30px; letter-spacing:10px; margin-left:555px;">The fuzzy search engine</span>
   
 <br>
<form method="post" action="Open">
 <input Name="Button_save" type="submit"  value="" id="save" >
 <input Name="Button_imprime" type="submit" value="" id="imprime">
 <input Name="Button_back"  value="" type="submit" id="back" >
 </form>
 </div>
   
<div>
<iframe style="width: 1331px;  height:600px;" src="${url}"></iframe>
</div>
 
 
<script type="text/javascript">
   
function function(){
     var String selectedtext;
    var frame = document.getElementById(myframe);
 
    var frameWindow = frame && frame.contentWindow;
    var frameDocument = frameWindow && frameWindow.document;
 
    if (frameDocument) {
        if (frameDocument.getSelection) {
            // Most browsers
           selectedtext=String(frameDocument.getSelection());
             
             
        }
        else if (frameDocument.selection) {
            // Internet Explorer 8 and below
alert(frameDocument.selection.createRange().text);
          selectedtext= frameDocument.selection.createRange().text;
        }
        else if (frameWindow.getSelection) {
            // Safari 3
           selectedtext=String(frameWindow.getSelection());
        }
         
         
    }
 
     
}
</script>
   
 
</body>
</html>
 
Pour le code que je veux l'integrer dans la fonction javascript est le suivant
 
 
<%  HttpSession session = request.getSession();%>
 
            <%com.onto.beans.Document doc=session.getAttribute("sessiondoc" ); %>
 
            <% doc.setNbre_caractère_sélectionné(selectedtext.length());%>
 
 
 
 
//avec selectetedtext variable du code javascript.

Reply

Marsh Posté le 08-08-2014 à 00:20:47   

Reply

Marsh Posté le 08-08-2014 à 09:48:43    

Pourquoi tu dis que pour gérer les événements, t'as besoin d'une servlet :??:
Javascript va gérer tes événements de l'iframe (au passage, c'est pas bien les iframe car dangereux niveau sécu :o) et pour éviter les refresh de ta page web, tu vas utiliser javascript/ajax pour appeler un script jsp qui traitera tes requêtes ajax (et notamment mettre à jour la session de l'utilisateur). Le script jsp enverra (ou pas) une réponse au javascript qui la traitera en conséquence (ex : pour mettre à jour du contenu de la page web).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 08-08-2014 à 22:09:32    

OUi vu que je suis débutante en JEE j'ai pas une grande idée sur les technologies utilisés mais j'ai déjà compris que la seule solution et d'utiliser AJAX. :D  
Mais pourquoi vous avez dit que c'est dangereux d'utiliser les iframes qu'est ce qui peut remplacer les iframes???
<object>?? mais dans mon cas j'utilise les iframes pour afficher des liens onligne et aussi pour afficher des fichier xml ce qui n'est pas possible je crois avec <object>
et lorsqu'on clique sur un ligne à l'interieur de l'iframe s'ouvre à l'interieur de l'iframe(s'il doit s'ouvrir dans la meme fenetre biensure) mais pour <object> s'ouvre toujour dans une nouvelle fenetre c'est ça non??
Ma deuxième question pourquoi le code de selection du texte de iframe ne veut pas marcher .  :??:  
merciiiiiiii pour votre reponse  :)

Reply

Marsh Posté le 08-08-2014 à 22:57:37    

ben tout simplement une <div> pour remplacer une iframe. Le pb est que l'iframe affiche le contenu d'une url, qq elle soit, appartenant au site web ou pas. Du coup, des pirates peuvent y faire afficher autre chose que ce qui était prévu...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-08-2014 à 00:01:34    

mais j'ai essayé déjà avec les div mais veut pas marcher (pour iframe déjà mon but afficher contenu d'une url externe ) et pour le code detecter le texte avez-vous une idée.
J'ai ecrit ce code en JQuery(AJAX) :
 
 
 
$(document).ready(function(){
  $('#idButton').click(function(){
           sendData();
    });
   });
function sendData(){
 var window = $(document).getElementById('idFrame').contentWindow.window,
    t = '',
    document = $(document).getElementById('idFrame').contentWindow.document;
 
    if (window.getSelection) {
      t = window.getSelection();
    } else if (document.getSelection) {
      t = document.getSelection();
    } else if (document.selection) {
      t = document.selection.createRange().text;
    }
   
    alert(t);
    $.ajax({
        type: "POST",
        url: "open",
        data: { message : t  }
      }).done(function( msg ) {
        alert( "Data Saved: " + msg );
      });
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed