Как правильно передать параметры URL в мобильном телефоне jquery - PullRequest
0 голосов
/ 19 января 2012

Мне было интересно, не могли бы вы дать мне некоторое представление о том, что я могу сделать, когда дело доходит до передачи параметров URL-адреса в URL-адресе на определенную страницу моего мобильного сайта jquery.

Итак, у меня есть ссылка на сайт А, которая выглядит следующим образом: 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;
}

Проблема в том, что эти значения не применяются к этим скрытым полям ввода.

Ответы [ 2 ]

1 голос
/ 19 января 2012

За мой комментарий к ответу Лоусона вы можете использовать функцию 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;
}
1 голос
/ 19 января 2012

Я думаю, что проблема здесь в том, что вы пытаетесь записать значения на входы до того, как jQuery mobile полностью манипулирует DOM.Попробуйте обернуть верхнюю часть кода в функцию, которую вы вызываете onload.

function onload()
{
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;
}
###
<body onload="onload()">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...