Доступ к объекту местоположения внешнего скрипта из внешнего скрипта - PullRequest
1 голос
/ 04 июня 2010

Вот интересный JS q ... предположим, у вас есть:

host1.html на host1.com, который ссылается на внешний javascript (host2.js) на host2.com. В файле host2.js я хотел бы получить location.hostname хоста, обслуживающего host2.js, но поскольку host2.js вызывается из host1.html, он возвращает location.hostname host1.

Есть ли способ получить объект местоположения внешнего скрипта в вызываемом внешнем скрипте?

1 Ответ

1 голос
/ 05 июня 2010

Я думаю, что подобные вопросы задавались ранее, и ответ всегда был отрицательным, этого нельзя сделать.

Обходные:

  • Проработайте элементы родительского документа script и, используя переменную счетчика, выясните, в каком из них мы находимся (тьфу)

  • Вывести текущий URL во включенный скрипт на стороне сервера, например, в PHP: script_current_url = <?php echo "http://".$_SERVER["HTTP_HOST"]."/".$_SERVER["REQUEST_URI"] (есть переменная и для части протокола, я просто забыл название)

  • Установить переменную перед каждым <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>
    

    это глупо, но его можно упростить, создав функцию JS, которая включает файл и автоматически устанавливает правильную переменную.

Мне больше всего нравится серверный подход, но в зависимости от вашей платформы он имеет и другие последствия, такие как необходимость отправки всех .js ресурсов через дорогостоящий интерпретатор.

...