Une iframe est toujours la meilleure façon de télécharger du contenu visuel de domaines croisés. Avec AJAX, vous pouvez certainement télécharger le HTML d'une page web et le coller dans une div (comme d'autres l'ont mentionné) cependant le plus gros problème est la sécurité. Avec les iframes, vous pourrez charger le contenu de domaine croisé mais vous ne pourrez pas le manipuler car le contenu ne vous appartient pas vraiment. D'autre part, avec AJAX, vous pouvez certainement manipuler tout le contenu que vous êtes capable de télécharger mais le serveur du domaine distant doit être configuré de manière à vous permettre de le télécharger en premier lieu. Beaucoup de fois, vous n'aurez pas accès à la configuration du domaine distant et même si vous le faites, à moins de faire ce genre de configuration tout le temps, cela peut être un casse-tête. Dans ce cas, l'iframe peut être une alternative BEAUCOUP plus facile.
Comme d'autres l'ont mentionné, vous pouvez également utiliser la balise embed et la balise object mais ce n'est pas nécessairement plus avancé ou plus récent que l'iframe.
HTML5 s'est davantage orienté vers l'adoption des API web pour obtenir des informations à partir de domaines croisés. Habituellement, les API web renvoient simplement des données et non pas du HTML.