Javascript中的条件“获取脚本文件”,不使用库函数

时间:2010-03-08 20:07:01

标签: javascript ajax

我在一家拥有许多客户的公司工作,这些客户有自己的网站“插入”我们的系统。换句话说,他们有自己的网站,他们有一个链接,当用户点击它时,将它们转换到我们的网站。

我希望通过向客户端提供一小段代码放在他们的主页上来跟踪一项功能。每当主页加载某个查询字符串变量时,我希望代码块在我的服务器上请求一个文件。然后在服务器上,我将根据查询字符串记录跟踪信息。

如果我能保证客户端将使用jQuery或类似的库,那么这一切都会非常简单,但是有很多客户端,我不能真正依赖它们全部使用jQuery。与此同时,我想限制他们粘贴的javascript代码块的大小。

我认为最好的解决办法是:

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

但我在内置的javascript中找不到include函数而不调用像jQuery这样的库。

有什么想法?我可以直接使用AJAX,但是我想限制代码行的数量,原因有几个,我不会在这里给你带来麻烦。

4 个答案:

答案 0 :(得分:5)

以编程方式添加脚本块

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

作为增强功能,您可以跟踪已添加的所有path,以便您不会意外地加载相同的脚本两次。

答案 1 :(得分:0)

通常,我会通过插入img为您的blah.aspx的1x1 src代码来实现此目的。

答案 2 :(得分:-1)

编写一个使用内置Ajax方法的脚本,并为您的客户提供:

<script type="text/javascript" src="yourScript.js"></script>

答案 3 :(得分:-1)

你可以给他们这样的东西:

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

这将从Google加载jQuery,这将节省带宽并让你使用jQuery。