2015-05-18 3 views
1

У меня есть форма, которая должна вытащить значение из URL-адреса реферера и установить его как значение поля ввода. Мне нужно проверить это локально, прежде чем нажимать изменения, но не знаете, как настроить заголовок в chrome/firefox для жесткого кодирования URL-адреса.Hard code window.document.referrer

Я использую следующий захватить реферер, применить регулярное выражение, чтобы захватить то, что мне нужно, и установить результат в текст с идентификатором imageid:

var regexp = /assets\/(\d+)/; 
     var encodeID = regexp.exec(window.document.referrer); 
     if (encodeID !== null && encodeID.length == 1){ 
      $("#imageid").val(encodeID[1]); 
     }else{ 
      $("#imageid").val(); 
     } 
+0

и что вы будете делать, если у браузеров установлен флажок «donottrack»? Потому что * lots * из них делают, и даже если они этого не делают, https-запросы больше не добавляются в реферер, потому что это будет раскрывать информацию, которая показывает данные, которые могут быть использованы для целей безопасности. –

+0

Это не проблема, так как люди, использующие эту конкретную страницу, не будут использовать эту опцию. Страница реферера передает URL с числовым значением в конце, которое удаляется и устанавливается в текстовое поле, чтобы ускорить процесс пользователя. – Matt

+1

Если вы хотите его жестко закодировать, почему бы просто не использовать строку вместо 'window.document.referrer'? –

ответ

0

Простым решением было просто запустить приложение и на странице, потянув реферер, примените эту логику к странице в консоли:

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]); 
}