Charger le contenu iframe avec un agent utilisateur différent
Est-il possible de charger un iframe avec les différents utilisateurs de l'agent ?? À l'aide d'un mobile utilisateur de l'agent pour un iframe aide mon application pour en afficher les sites mobiles que hover popup.
Par exemple, Google affiche les résultats de recherche mobile de la page seulement si l'agent utilisateur est à partir d'un mobile.
Est-il des solutions de rechange ou est-il des risques de sécurité impliqués dans cette idée ??
source d'informationauteur Aakash Chakravarthy | 2012-10-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire avec JavaScript:
Toutefois, cela ne fonctionne qu'avec un certain nombre de navigateurs.
Voir cette question: Se moquant d'un client en javascript?
Vous pouvez créer un proxy qui fait des demandes avec un autre utilisateur de l'agent, puis charger le contenu de l'iframe par le proxy.
Tout d'abord, vous devez créer une fonction pour modifier la chaîne de l'agent utilisateur:
Alors vous avez besoin de cibler l'élément iframe:
Vous pouvez également définir un ID pour l'iframe et la cible de l'ID à la place de tous les éléments iframe sur la page.
De ce que je vois, vous avez deux solutions:
La plupart des sites web ne sont pas rendus par l'agent utilisateur, ils ont juste de reconnaître l'agent de l'utilisateur et le rediriger l'utilisateur pour l'affichage mobile, accessible en vertu d'un autre domaine (http://m.youtube.com/, par exemple) ou d'une autre URL segment. Vous n'avez qu'à vérifier leur documentation, obtenir leur mobile d'URL et de le charger dans l'iframe.
L'autre solution c'est de pointer l'Iframe de votre application, et de récupérer le document à partir de votre backend. Vous pouvez ensuite modifier la demande de l'agent utilisateur.
De HTML est impossible d'influencer les en-têtes de requête. Mais vous pouvez le faire avec javascript.
Je devine qu'on ne peut changer l'user agent d'information pour l'ensemble de la fenêtre du navigateur ou de l'onglet. En chargeant le iframes à des moments différents, on pourrait changer l'user-agent entre les charges d'obtenir deux différents iframes sur une page avec des différents de l'agent utilisateur. J'ai testé cela avec un exemple trivial page:
Après le chargement de cette page dans Firefox 36.0.1, j'ai utilisé le User Agent Switcher extension https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/ pour sélectionner l'iPhone 3.0, puis cliqué sur le "Mobile Usurper" lien pour recharger cette image. À ce point, j'ai vu la même page montrant un utilisateur différent de l'agent dans chaque iframe. Je suis sûr que le chargement de la page ou de recharger le calendrier pourrait être automatisé avec le setTimeout() la méthode, ou peut-être via des gestionnaires d'événements. Je ne suis pas sûr de savoir comment automatiser l'agent de l'utilisateur de l'interrupteur. J'ai essayé le setUserAgent fonction suggéré par Aero Windwalker, mais ne pouvait pas le faire fonctionner dans Firefox 36 ou Chrome 41. Je tiens également à créer une page qui fait bien cela.