Я пытаюсь изменить переменную в javascript на значение по умолчанию, если нет доступного значения
// Parse the URL
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = 'organic';
var medium = 'organic';
var campaign = 'organic';
// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');
Я использую некоторый javascript для передачи переменной utm из URL-адреса через форму pardot. Я хочу установить значение по умолчанию для органического, а затем изменить переменную на ту, которая указана в URL-адресе, если она доступна.
Я не понимаю смысла первой строки внутри getParameterByName
. Это регулярное выражение не соответствует ни одному из значений параметров, которые вы передаете в метод. Эта строка, кажется, не делает ничего полезного, или, может быть, я что-то упускаю.
поэтому я беру переменную utm из строки URL-адреса, на самом деле я хочу сделать следующее. Я могу написать ее на php, но просто не знаю, как это сделать в javascript $source = "Organic"; если (isset(getParameterByName('utm_source')) { $source=getParameterByName('utm_source'); }
Вы можете передать значение по умолчанию в качестве параметра функции и вернуть его в своем условном операторе вместо ""
:
function getParameterByName(name, default) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? default : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = 'organic';
var medium = 'organic';
var campaign = 'organic';
// Give the URL parameters variable names
var source = getParameterByName('utm_source', source);
var medium = getParameterByName('utm_medium', medium);
var campaign = getParameterByName('utm_campaign', campaign);
Другой вариант — использовать оператор ||
для применения значения по умолчанию в задании:
/ Give the URL parameters variable names
var source = 'organic';
var medium = 'organic';
var campaign = 'organic';
// Give the URL parameters variable names
var source = getParameterByName('utm_source') || source;
var medium = getParameterByName('utm_medium') || medium;
var campaign = getParameterByName('utm_campaign') || campaign;
в чем именно проблема?: Что пойдет не так? Сообщается ли об ошибках? Происходит ли что-нибудь?