0 votes

Quel est le code JQuery de cet extrait ?

J'ai une page parent qui contient une zone de texte et un lien pour ouvrir une fenêtre enfant. La fenêtre enfant contient une autre zone de texte et un bouton. L'utilisateur saisit du texte dans la zone de texte de la fenêtre enfant et clique sur le bouton, un javascript est activé et met à jour le contenu de la zone de texte de la fenêtre parent avec celui de la zone de texte de la fenêtre enfant et ferme la fenêtre enfant.

Je fais actuellement cela en javascript et cela fonctionne bien, mais puisque nous allons passer à jQuery très bientôt, comment faire la même chose en utilisant jQuery.

page1.html
----------

<script type="text/javascript">
    function newwin() {
        window.open('page2.html','','width=600');
    }
</script>
<body> 
    <textarea id='t1'>
    <a href="javascript:void(0)" onclick="newwin();">Click here</a> 

</body>

page2.html
----------
<script type="text/javascript">
    function updateparent() {
        window.opener.document.getElementById('t1').value = document.getElementById('t2').value;
        window.close();
    }
</script>
<body> 
    <textarea id='t2'>
    <input type="submit" onclick="updateparent();"> 
</body>

1voto

James Wiseman Points 18347

Question intéressante.

Comme l'a mentionné Domonic Roger, si ça marche, vous voulez probablement le laisser.

Pour moi, la question n'est pas "Quel est le code JQuery de cet extrait ?", mais comment utiliser JQuery pour obtenir la même solution.

Parfois, il ne s'agit pas seulement d'un simple remplacement de code. Prenons l'exemple suivant :

function updateparent() { 
    window.opener.document.getElementById('t1').value = document.getElementById('t2').value; 
    window.close(); 
} 

Maintenant, le code jQuery pourrait être quelque chose comme ceci :

function updateparent() { 
    window.opener.$("#t1").val($("#t2").val());
    window.close(); 
} 

Mais, je ne ferais pas ça. J'utiliserais la fonctionnalité de fenêtre pop disponible dans l'interface utilisateur de jQuery, ou un plugin (par ex. blocui ) pour accéder à la fenêtre contextuelle.

Aussi, ce code :

<body>  
    <textarea id='t2'> 
    <input type="submit" onclick="updateparent();">  
</body>

Dans jQuery, nous sommes encouragés à utiliser la liaison tardive des événements, donc tout JavaScript en ligne serait accepté :

<body>  
    <textarea id='t2'> 
    <input id="MyInput" type="submit">  
</body>

Et être lié une fois que le document est prêt :

$(document).ready(function(){
    $("#MyInput").click(updateparent());
});

1voto

AlfaTeK Points 2675

Une façon plus "jquery" de le faire :

page1.html
----------

<script type="text/javascript">
$(document).ready(function() {

    $("#link1").click(function(){
        window.open('page2.html','','width=600');    
    });
});
</script>
<body> 
    <textarea id='t1'>
    <a id="link1" href="#">Click here</a> 

</body>

page2.html
----------
<script type="text/javascript">
$(document).ready(function() {
    $("#link1").click(function(){
        window.opener.jQuery("#t1").val($("#t2").val());    
        window.close();
    });

});
</script>
<body> 
    <textarea id='t2'>
    <input type="submit" id="link2"> 
</body>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X