2010-06-04 4 views
1

Voici un q intéressant JS ... supposons que vous avez:Accès à l'objet de l'emplacement d'un script externe du script externe

host1.html sur host1.com qui fait référence à un javascript externe (host2.js) sur host2 .com. Dans le host2.js, j'aimerais obtenir le nom de lieu de l'hôte qui héberge host2.js, mais parce que host2.js est appelé à l'intérieur de host1.html, il renvoie le nom de lieu location.host de host1.

Existe-t-il un moyen d'obtenir l'objet d'emplacement du script externe dans le script externe appelé?

Répondre

1

Je pense que des questions similaires ont déjà été posées, et la réponse était toujours non, cela ne peut pas être fait.

Contournements:

  • travail à travers les éléments du document parent script et, en utilisant une variable compteur, savoir lequel nous sommes (pouah)

  • sortie l'URL actuelle dans la script inclus côté serveur, par ex. en PHP: script_current_url = <?php echo "http://".$_SERVER["HTTP_HOST"]."/".$_SERVER["REQUEST_URI"] (il y a une variable pour la partie du protocole aussi, j'ai oublié le nom)

  • Définir une variable avant chaque balise <script>:

    <script type="text/javascript"> 
    script_current_url = "http://www.example.com/include.js"; 
    </script> 
    
    <script type="text/javascript" src="http://www.example.com/include.js"> 
    </script> 
    

    c'est kludgy, mais pourrait être simplifié par la construction une fonction JS qui inclut le fichier et définit automatiquement la bonne variable.

J'aime le côté serveur approche le meilleur, mais en fonction de votre plate-forme, il a d'autres conséquences comme avoir à envoyer toutes .js ressources par le biais d'un interprète coûteux ressource.

Questions connexes