查询中的JavaScript外观匹配子字符串与对象
我想根据URL中出现的一些值在页面上显示一条消息。我有一个已知的字符串列表和相应的消息。我似乎无法通过查找/消息传递实现任何目标。有人能帮忙吗?首选JavaScript,而不是jquery。我并不是在这一点上忽略了差异;) 非常感谢查询中的JavaScript外观匹配子字符串与对象,javascript,url,object,substring,match,Javascript,Url,Object,Substring,Match,我想根据URL中出现的一些值在页面上显示一条消息。我有一个已知的字符串列表和相应的消息。我似乎无法通过查找/消息传递实现任何目标。有人能帮忙吗?首选JavaScript,而不是jquery。我并不是在这一点上忽略了差异;) 非常感谢 <div id="messagediv"></div> 要测试的示例URL: <p><a href="#?utm_campaign=SpaComp123">Campaign 1</a> <p&g
<div id="messagediv"></div>
要测试的示例URL:
<p><a href="#?utm_campaign=SpaComp123">Campaign 1</a>
<p><a href="#?utm_campaign=PoolComp123">Campaign 2</a>
<p><a href="#?utm_campaign=BeachComp123">Campaign 3</a>
<script>
(function () {
var params = window.location.search.substring(1).split('&'),
urlParams = {},
key, val;
for (var i = 01; i < params.length; i++) {
urlParams[params.split('=')[0]] = params.split('=')[1];
}
// querystring is ?utm_campaign=SpaCamp12458
// for instance, match URL query value SpaCamp12458 with the nums SpaComp key and show the corresponding text in the messagediv
var nums = {
defaultMessage: "Default Message",
"SpaComp": "Spas",
"PoolComp": "Recreation",
"BeachComp": "Outdoors"
}
for (var i in nums) {
if (nums.hasOwnProperty(i)) {
var found = false;
for (var j in urlParams) {
if (urlParams.hasOwnProperty(j)) {
if (urlParams[j].indexOf(nums[i]) === 0) {
document.getElementById("messagediv").innerHTML = nums[i];
found = true;
break;
}
}
}
if (!found) {
document.getElementById("messagediv").innerHTML = nums.defaultMessage;
}
}
}
})();
</script>
(功能(){
var params=window.location.search.substring(1).split('&'),
urlParams={},
键,val;
对于(变量i=01;i
感谢您对ADC和Danny Thunder的帮助。非常感谢,因为我是新来的。我能够检索查询参数。Thopugh还没有在“nums”obj中找到匹配的方法。你能告诉我怎么走吗?谢谢(var i=01;i。这应该是params[i]。拆分('-')…
(你实际上没有在任何地方使用i
。谢谢JLRishe。这真是一个疏忽。我在nums
中使用i
,在urlParams
中使用j
将其改为var j=1;j
是否正确,因为我正试图使用urlParams.hasOwnProperty(j)
稍后?谢谢你对我的耐心,让我了解一切的原因/作用。呃,那是我的疏忽——我不确定我的评论中是否清楚这一点。:)