需要Javascript改变基于子域名的广告跟踪器键
Need Javascript to change an ad tracker key based off sub domain name
我目前有4个不同的javascript广告跟踪。它们看起来像这样:
<script type='text/javascript'> var TrackerKey = 'keyabc123'; var url = 'http://website.com/jscode.js'; var script = document.createElement('script'); script.setAttribute('src', url); script.setAttribute('type', 'text/javascript'); document.body.appendChild(script);</script>
我想把所有4个组合起来,并简单地根据他们所在的子域名交换跟踪器密钥。
到目前为止,我已经能够计算出我将使用window.location.hostname来查找域是什么。我可能会使用switch语句或if/else方法。
我没有足够的经验,虽然知道如何将域作为变量的信息传递给switch语句,然后使用它来更新跟踪器键变量。
我假设它看起来像下面这样…
<script type='text/javascript'>
var domain = window.location.hostname;
var TrackerKey;
switch (???) {
case 0:
sub.domain1.com = "keyabc123";
break;
case 1:
sub.domain2.com = "keydef456";
break;
case 2:
sub.domain3.com = "keyghi789";
break;
case 3:
sub.domain4.com = "keyjkl012";
break;
}
var url = 'http://website.com/jscode.js'; var script = document.createElement('script'); script.setAttribute('src', url); script.setAttribute('type', 'text/javascript'); document.body.appendChild(script);</script>
我在正确的路径上吗?
抱歉,这是我第一次尝试超越最基本的东西。
你很接近了:
var domain = window.location.hostname;
var TrackerKey;
switch (domain) {
case "sub.domain1.com":
TrackerKey = "keyabc123";
break;
case "sub.domain2.com":
TrackerKey = "keydef456";
break;
case "sub.domain3.com":
TrackerKey = "keyghi789";
break;
case "sub.domain4.com":
TrackerKey = "keyjkl012";
break;
}
根据Javascript的约定,变量名和函数名也是驼峰式大小写,以小写字符开头,类名也是驼峰式大小写,以大写字符开头。
var subdomain = window.location.hostname.match(/(http:'/'/)?(([^.]+)'.)?domain'.com/)[3]
将上面的'domain'更改为您的域名,然后使用
var TrackerKey;
switch(subdomain) {
case 'abc': //abc.domain.com
TrackerKey = 'abc123';
break;
}
然后执行通常的脚本插入。
Regex ref: Regex从URL提取子域?
我想这个应该可以了:
function trackerKey(url){
var d = url.replace(/^((ht|f)tps?':'/'/)?(www'.)?([^.]+).+$/i, '$4').toLowerCase();
switch(d){
case 'vancouver':
return 'someKey1';
case 'portland':
return 'someKey2';
case 'seattle':
return 'someKey3';
case 'losangeles':
return 'someKey4';
default:
return 'someKey';
}
}
console.log(trackerKey(location));
如果你在seattle.craigslist.org
下运行这段代码,你会在控制台中看到someKey3
。同样地,vancouver.craigslist.ca
会得到someKey1
。当然,您必须为craigslist工作才能运行上述代码。这只是一个例子。顺便说一下,我通常会发现返回密钥或根据已知的客户端信息生成密钥是没有意义的。您应该处理加密服务器端。注意,您不必键入window.
,因为它是隐式的。
相关文章:
- 动态分配GA增强型电子商务跟踪器
- 跟踪在页面加载时应用内联样式的JavaScript
- 跟踪用户点击Adsense广告的IP地址
- 跟踪jqplot垂直折线图的鼠标位置
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- 有没有一种方法可以从URL跟踪请求的域
- Javascript-在视频中跟踪鼠标位置
- Wordpress:替换源(域名)链接
- 在Google Analytics中跟踪用户,但只能在两个操作之间跟踪
- 如何使用Google Analytics跟踪表单提交
- Fresh Spark Install+Homestead上的Vue异步堆栈跟踪错误
- 代码挑战:创建一个跟踪对象实例总数的类Foo
- 打印javascript控制台的堆栈跟踪
- 谷歌分析:如何跟踪移动网站的点击量作为对主网站的点击
- 即使光标位于屏幕边缘,也可以跟踪鼠标速度
- 什么'这是谷歌分析跟踪代码使用的技术
- 如何将Google Analytics配置为将URL参数作为单个页面进行跟踪
- 如何在不知道域名的情况下跟踪网站的网页浏览量
- 谷歌分析发送跟踪到一个国家的域名,所以它被CSP屏蔽
- 需要Javascript改变基于子域名的广告跟踪器键