Conditional "Get Script File" in Javascript without using a library function
I work at a company that has many clients that have their own website that "plugs in" to our system. In other words they have their own website and they have a link that, when the user clicks it, transitions them over to our site.
There is a feature that I want to track by giving the client a small block of code to put on their homepage. Whenever the homepage is loaded with a certain query string variable I want the block of code to request a file on my server. Then on the server I'll record the tracking info based on the query string.
All this would be really easy if I can guarantee that the client would be using jQuery or some similar library, but there are a lot of clients and I can't really rely on them all using jQuery. At the same time I'd like to limit the size of the block of javascript code that they paste in.
I think the best solution would be to have something like:
if(querystring.substring("Tracking=") > 0)
{
include("blah.aspx?TrackingQS=" + querystring);
}
but I can't find a include
function in built-in javascript without calling some library like jQuery.
Any thoughts?? I could do straight up AJAX but I want to limit the number of lines of code for severa开发者_如何学Gol reasons that I won't bore you with here.
Add a script block programmatically
function include(path) {
var s = document.createElement('script');
s.type = 'text/javascript'
s.src = path;
document.getElementsByTagName('head')[0].appendChild(s);
}
As an enhancement, you can keep track of all the path
s that have been added so that you dont accidentally load the same script twice.
Typically one does this by inserting a 1x1 img
tag whose src
is your blah.aspx.
Write a script that would use the built-in Ajax methods and give your clients this:
<script type="text/javascript" src="yourScript.js"></script>
You could give them something like this:
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.4.1");
ourJQ = jQuery.noconflict();
//jQuery code
</script>
That will load jQuery from Google which will save them bandwidth and let you use jQuery.
精彩评论