我一直在使用以下动态脚本技术在其他通用脚本中执行特定于站点的子例程,即
siteExtras : function (cid, extras) {
var script = document.createElement("script");
script.src = 'https://' + cid + '.mysite.com/' + cid + "_extras.js?" + extras;
script.type = 'text/javascript';
var h = document.getElementsByTagName("script")[0];
h.parentNode.insertBefore(script, h);
},
所以给定以下调用
this.siteExtras('cycles','concept=tandem');
script.src 因此变成
https://cycles.mysite.com/cycles_extras.js?concept=tandem
其中cycles 是我在mysite.com 上创建的特定于客户的子域。
我遇到的问题是我一直假设cycles_extras.js 能够读取它自己的搜索字符串,使用
//cycles_extras.js
function getParameterByName(name) {
var args = location.search.substr(1).split('&');
for (var i = 0; i < args.length; i++) {
var parts = args[i].split('=');
if (name === parts[0]) {
return unescape(parts[1]);
}
}
return "";
}
var concept = getParameterByName('concept');
...
但是,当 Cycles_extras.js 被执行时,它会从浏览器中获取它的 location.search,而不是从https://cycles.mysite.com/cycles_extras.js?concept=tandem URL。
我在这里尝试不可能的事情吗?还是缺少什么?