За последние 24 часа нас посетили 16528 программистов и 1578 роботов. Сейчас ищет 771 программист ...

https + document.write

Тема в разделе "JavaScript и AJAX", создана пользователем forint, 24 янв 2011.

  1. forint

    forint Активный пользователь

    С нами с:
    7 фев 2008
    Сообщения:
    26
    Симпатии:
    0
    Добрый день.
    Господа, подскажите пожалуйста, что мешает мне подгрузить js файл с параметрами на свою страницу с другого домена.
    Что самое интересное, тот же самый Google Analytics использует тот же самый метод, но ie на его js файл вообще ни как не реагирует.
    [js]
    <script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://www." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "adress.com/js/1.js' type='text/javascript'%3E%3C/script%3E"));
    </script>
    [/js]

    сам домен на котором находится сам скрипт находится на ssl ("https:" ), но и файл js который "подгружается" тоже за https.
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    так напиши в сам код документа без этих проверок. чтото типа <script src="adress.com/js/1.js"></script>
     
  3. forint

    forint Активный пользователь

    С нами с:
    7 фев 2008
    Сообщения:
    26
    Симпатии:
    0
    дело в том что ie блокирует такие инжекты с другого домена через просто <script src=
    по этому опять же тот же Google analitick использует "document.write".
    и что самое интересное.. :

    если прописываю код с их файлом

    [js]<script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://www." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google.com/1.js' type='text/javascript'%3E%3C/script%3E"));
    </script>[/js]
    все проходит нормально..
    стоит мне поменять домен на свой в коде, ie сразу начинает блокировать его..
    у меня подозрение на выдаваемые ключи сервером. Может это иметь смысл ?
     
  4. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    если это гугловский файл, который дается "по штуке в руки", то понятное дело, что для другого домена не прокатит.
    ишак тут ни причем, инклудить js-файлы не запрещено с любого домена. Вон библиотеки подключают сторонние например, та же jquery "тянется" с jquery.com. Так это это скорей всего гугл "контролит" ситуацию.

    п.с. имел дело с гуглмапс, так так дается ключ на один сайт, и этот же ключ прописывался при подключении файла js. Иначе, вызывался алерт сообщением, что произошло палево :) и ключ не соответствует домену.
     
  5. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    То же самое например на Яндекс-картах: один ключ-один сайт
     
  6. forint

    forint Активный пользователь

    С нами с:
    7 фев 2008
    Сообщения:
    26
    Симпатии:
    0
    Собственно, а как ????
    как google может заинклюдить свой скрипт "google-analytics.com/ga.js"
    [js]
    <script type="text/javascript">

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-чччччччч']);
    _gaq.push(['_trackPageview']);

    (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();

    </script>
    [/js]

    в обход безопасности ie ???
    ie то ловит сам факт обращения на другой домен и блокирует его.. а не после уже инклюда по факту.
     
  7. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Так инклуд внешнего js-файла разрешен с любого домена. Не пойму причем тут ие и чтото он там блокирует? может настройки браузера так выставлены. Но не помню какихто ограничений для <script src="url">

    Судя по тому коды что ты вот дал, то там создается переменная, которая и является ключом для подключаемого файла
    [js]_gaq.push(['_setAccount', 'UA-чччччччч']);[/js]
    после этой строки идет сам вызов файла, в котором проверяется содержимое _gaq и сверяется с доменом, который запросил этот файл. Поскольку у тебя это дело не совпадает (ключ != домен) то и происходит отказ. Ие тут ни причем.