Условно «Получить файл сценария» в Javascript без использования библиотечной функции - PullRequest
2 голосов
/ 08 марта 2010

Я работаю в компании, у которой есть много клиентов, у которых есть собственный веб-сайт, который «подключается» к нашей системе. Другими словами, у них есть собственный веб-сайт, и у них есть ссылка, которая, когда пользователь щелкает по ней, переносит их на наш сайт.

Есть функция, которую я хочу отследить, предоставив клиенту небольшой блок кода для размещения на его домашней странице. Всякий раз, когда домашняя страница загружается с определенной переменной строки запроса, я хочу, чтобы блок кода запросил файл на моем сервере. Затем на сервере я запишу информацию об отслеживании на основе строки запроса.

Все это было бы действительно легко, если бы я мог гарантировать, что клиент будет использовать jQuery или какую-то подобную библиотеку, но есть много клиентов, и я не могу действительно полагаться на них всех, используя jQuery. В то же время я хотел бы ограничить размер блока кода JavaScript, который они вставляют.

Я думаю, что лучшим решением было бы иметь что-то вроде:

if(querystring.substring("Tracking=") > 0)
{
   include("blah.aspx?TrackingQS=" + querystring);
}

но я не могу найти функцию include во встроенном javascript без вызова какой-либо библиотеки, например jQuery.

Есть мысли ?? Я мог бы работать прямо в AJAX, но я хочу ограничить количество строк кода по нескольким причинам, которые я не буду утомлять вас здесь.

Ответы [ 4 ]

5 голосов
/ 08 марта 2010

Добавить блок скрипта программно

 function include(path) {
     var s = document.createElement('script'); 
     s.type = 'text/javascript'
     s.src = path;
     document.getElementsByTagName('head')[0].appendChild(s);
 }

В качестве усовершенствования вы можете отслеживать все добавленные path, чтобы случайно не загрузить один и тот же скрипт дважды.

0 голосов
/ 08 марта 2010

Вы могли бы дать им что-то вроде этого:

<script src="http://www.google.com/jsapi"></script>
<script>
    google.load("jquery", "1.4.1");
    ourJQ = jQuery.noconflict();
    //jQuery code
</script>

Это загрузит jQuery из Google, что сэкономит им пропускную способность и позволит вам использовать jQuery.

0 голосов
/ 08 марта 2010

Обычно это делается путем вставки тега 1x1 img, src которого является вашим blah.aspx.

0 голосов
/ 08 марта 2010

Напишите скрипт, который будет использовать встроенные методы Ajax, и дайте своим клиентам это:

<script type="text/javascript" src="yourScript.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...