我一直在使用以下动态脚本技术在其他通用脚本中执行特定于站点的子例程,即
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
其中,cycle是我在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。
我在这里尝试不可能吗?或者缺少什么?
答案 0 :(得分:1)
您可以使用全局命名空间来获取帮助。将值绑定到变量并将其附加到窗口或文档对象。例如,
document.concept = "tandem"
window.concept = "tandem".