web-dev-qa-db-fra.com

Sélection d'un élément dans iFrame jQuery

Dans notre application, nous analysons une page Web et la chargeons dans une autre page d'un iFrame. Tous les éléments de cette page chargée ont leur tokenid-s. Je dois sélectionner les éléments à l'aide de ces tokenid-s. Moyens - Je clique sur un élément de la page principale et sélectionne l'élément correspondant dans la page de l'iFrame. Avec l'aide de jQuery, je le fais de la manière suivante:

function selectElement(token) {
     $('[tokenid=' + token + ']').addClass('border'); 
}

Cependant, avec cette fonction, je peux sélectionner les éléments uniquement dans la page actuelle, pas dans l'iFrame. Quelqu'un pourrait-il me dire comment puis-je sélectionner les éléments dans l'iFrame chargé?

Merci.

110
cycero
var iframe = $('iframe'); // or some other selector to get the iframe
$('[tokenid=' + token + ']', iframe.contents()).addClass('border');

Notez également que si la src de cette iframe pointe vers un domaine différent, pour des raisons de sécurité, vous ne pourrez pas accéder au contenu de cette iframe en javascript.

142
Darin Dimitrov

Jetez un oeil à ce post: http://praveenbattula.blogspot.com/2009/09/access-iframe-content-using-jquery.html

$("#iframeID").contents().find("[tokenid=" + token + "]").html();

Placez votre sélecteur dans la méthode de recherche.

Cela peut ne pas être possible si l'iframe ne provient pas de votre serveur. D'autres publications parlent d'erreurs d'autorisation refusées.

jQuery/JavaScript: accès au contenu d’une iframe

46
Kevin Bowersox

lorsque votre document est prêt, cela ne signifie pas que votre iframe est également prêt,
vous devez donc écouter l'événement de chargement iframe puis accéder à votre contenu:

$(function() {
    $("#my-iframe").bind("load",function(){
        $(this).contents().find("[tokenid=" + token + "]").html();
    });
});
18
Fareed Alnamrouti

Si l'affaire accède à l'IFrame via la console, e. g. ChromeDev Tools, vous pouvez simplement sélectionner le contexte des requêtes DOM via une liste déroulante (voir la photo).

Chrome Dev Tools - Selecting the iFrame

0
tibersky