2010-11-08 6 views
4

D'accord ... Cela fait maintenant une heure que je cherche ... Comment obtient-on l'innerHTML d'un tag de script? Voici ce que je travaille sur ...Comment obtenir un innerHTML de Script Tag

<script type="text/javascript" src="http://www.google.com" id="externalScript"></script> 
<script type="text/javascript"> 
function getSource() 
{document.getElementById('externalScript').innerHTML; 
    } 
</script> 

J'ai essayé de travailler sur une façon d'appeler la source de la page d'un autre domaine avec la balise de script. J'ai vu un exemple de travail, mais ne peux pas le trouver pour la vie de moi ...

+0

Est-ce que vous voulez avoir un 'iframe'? La première ligne de votre code n'est certainement pas correcte ... '

-1

Vous ne pouvez pas faire cela. Ce serait un énorme problème de sécurité si vous le pouviez.

Le contenu du script peut inclure n'importe quel nombre de choses. Considérez ceci: un script chargé à partir d'une URL sur le site Web de votre banque peut contenir toutes sortes de choses, comme votre numéro de compte, votre solde et d'autres informations personnelles. Ce script serait chargé par les pages normales de votre banque pour faire ce qu'ils veulent faire. Maintenant, je suis un hacker maléfique, et je soupçonne que vous pouvez être un client de Biggo Bank. Donc, sur une de mes propres pages, j'inclus une étiquette <script> pour ce script Biggo Bank. Le script ne peut être chargé que s'il existe un cookie de session Biggo Bank valide, mais que se passe-t-il s'il existe? Que se passe-t-il si vous visitez mon site de hacker alors que vous êtes connecté à Biggo Bank dans un autre onglet du navigateur? Maintenant, mon propre code JavaScript peut lire le contenu de ce script, et votre argent est maintenant le mien :)

+1

Curieux ... comment est-ce un problème de sécurité? Vous pouvez exécuter des scripts à partir d'autres domaines ... pourquoi est-ce que ce serait un problème de pouvoir les lire en tant que chaîne et faire des choses? (FWIW Je ne vous défie pas, je suis vraiment curieux) – rob

+1

Parce qu'il est toujours possible qu'un script puisse contenir des informations sensibles. Ce n'est peut-être pas un simple Javascript - le serveur peut l'avoir généré dynamiquement. – Pointy

+0

Cependant, il n'y a pas de problème de sécurité lors de la lecture des fichiers de script référencés en externe de votre domaine OWN. C'est un cas qui devrait sûrement être autorisé. – csuwldcat

1

En fait, il existe un moyen d'obtenir le contenu, mais cela dépend du serveur distant qui vous permet d'obtenir le fichier sans validité en-têtes et échoue encore beaucoup de temps juste à cause de ces paramètres. en utilisant jQuery car il est la fin de ma journée et je suis la porte ....

$.get($('#externalScript').attr('src'), function(data) { 
    alert(data); 
}); 
+1

Je ne vois pas comment cela pourrait fonctionner - au meilleur de ma connaissance, en utilisant $ .get est sensible à la politique de la même origine comme toute autre chose, ce qui est exactement ce que l'OP essaie de contourner. – nitwit

-2

Vous pouvez utiliser Html: Parsers

jsoup »jsoup: Java HTML Parser jsoup: Java HTML Parser

jsoup est une bibliothèque Java pour travailler avec du HTML réel. Il fournit une API très pratique pour extraire et manipuler des données, en utilisant les meilleures méthodes DOM, CSS et jquery.

se réfèrent ceci: http://jsoup.org/

+1

Cela n'a rien à voir avec le problème posé par la question. – Pointy

0

Je devine que vous voulez une des deux choses:

  1. Pour faire un fichier JavaScript global (de sorte que d'autres pages peuvent appeler)

  2. Pour obtenir le script qui est actuellement dans le fichier

ces deux peuvent être résolus en déplaçant votre script dans un fichier .js, puis en utilisant la balise

<script src="[path-to-file]"></script>