我想知道您是否能给我一些关于将 url 中的 url 参数传递到我的 jquery 移动运行站点上的特定页面时可以做什么的见解。
所以我在站点 A 上有一个链接,如下所示: http://www.m.mysite.org/donate?s_src=1234&s_subsrc=12345
如果有人点击该链接,我就会被带到我的移动网站,在那里我有一个捐赠表格。在捐赠表格中,我有两个隐藏字段,称为
<input type="hidden" id="source" value="" />
<input type="hidden" id="sub_source" value="" />
我想获取这些参数的值并填充那些可能为空或不为空的值。这是我必须获取这些参数及其值的脚本:
var source = getUrlVars()["s_src"];
var subsourc = getUrlVars()["s_subsrc"];
if (source != "" && source != 'undefined' && source != null) {
document.getElementById('source').value = source;
}
if (subsourc != "" && subsourc != 'undefined' && subsourc != null) {
document.getElementById('sub_source').value = subsourc;
}
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
问题是这些值没有应用于那些隐藏的输入字段。
最佳答案
根据我对 Lawson 答案的评论,您可以使用 ready()
函数。另外,我现在使用 jQuery 来设置隐藏输入的值,而不是直接使用 document
对象。
jQuery.ready(function() {
var source = getUrlVars()["s_src"];
var subsourc = getUrlVars()["s_subsrc"];
if (source != "" && source != 'undefined' && source != null) {
jQuery("#source").val(source);
}
if (subsourc != "" && subsourc != 'undefined' && subsourc != null) {
jQuery("#sub_source").val(subsourc);
}
});
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
关于javascript - 如何在jquery mobile中正确传递url参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919094/