Я пытаюсь вытащить URL-адрес реферера, применить к нему регулярное выражение и использовать результат в качестве значения в текстовом поле. Проблема в том, что текущая реализация не потянет URL-адрес реферера в текстовое поле, которое исходило бы от нажатия ссылки на предыдущей странице, но позволяло мне вводить значение вместо этого. Он должен автоматически заполнять текстовое поле реферером и разрешать пользователю искать на нем (или искать вручную вместо этого, если они ранее не нажали ссылку). Консоль выводит Uncaught TypeError: Cannot read property '1' of null
для строки $("#imageid").val(encodeID[1]);
, потому что она пытается найти второе значение в массиве результирующей строки (что означает, что URL-адрес реферера не вытягивается). Не уверен, что случилось с моей логикойURL-адрес referrer не обрабатывается правильно
Case 1
С этой логикой, он делает тянуть реферер URL, но не позволяет пользователю осуществлять поиск вручную (без реферер предварительного заполнения поля поиска)
var regexp = /assets\/(\d+)/;
var encodeID = regexp.exec(window.document.referrer);
if (encodeID !== null && encodeID.length == 1) {
$("#imageid").val(encodeID[1]);
} else {
var regexp = /assets\/(\d+)/;
var encodeID = regexp.exec(window.document.referrer);
$("#imageid").val(encodeID[1]);
}
Случай 2
с дополнительным , если заявление, он не тянуть реферер URL, бу т действительно позволяет пользователю осуществлять поиск вручную
var regexp = /assets\/(\d+)/;
var encodeID = regexp.exec(window.document.referrer);
if (encodeID !== null && encodeID.length == 1){
$("#imageid").val(encodeID[1]);
}else if($("#imageid").val() !== ''){
var regexp = /assets\/(\d+)/;
var encodeID = regexp.exec(window.document.referrer);
$("#imageid").val(encodeID[1]);
}
Пользователь должен иметь возможность либо нажать на ссылающейся URL и иметь его предварительно заполнить поле или выполнить поиск вручную.
Простое быстрое примечание, нет необходимости переназначать 'regexp' и' encodeID', поскольку они сначала назначаются за пределами оператора 'if'. – philtune
Я знаю, только больше сосредоточился на этой досадной маленькой логической проблеме. – Matt
Похоже, что регулярное выражение не совпадает. Поместите 'console.log (encodeID);' ниже 'var encodeID = regexp.exec (window.document.referrer);' и посмотреть, что вывод находится в console.log – micahblu