Как Digg удаляет «& x = 0 & y = 0» из URL -адреса результатов поиска?

StackOverflow https://stackoverflow.com/questions/1971813

  •  21-09-2019
  •  | 
  •  

Вопрос

Я использую изображение в качестве кнопки отправки для формы поиска, т.е.

<input id="search" type="image" alt="Search" src="/images/searchButton.png" name=""/>

Это имеет неудачный побочный эффект в Chrome и Firefox-параметры и x = 0 & y = 0 появляются в конце URL-адреса результатов поиска, например, если я ищу «еду», я направлен на страницу:

main/search?search=food&x=0&y=0

Некоторая охота на онлайн указывает, что это стандартное поведение, когда вы используете изображение для отправки формы.

Я заметил, что Digg.com использует изображение, чтобы отправить свою форму поиска, но избегает этого поведения. Я не могу понять, как они это делают. Похоже, они не используют JavaScript, чтобы отправить форму. Кто -нибудь может сказать?

Это было полезно?

Решение

Раскопать является Использование JavaScript для этого. Попробуйте отправить форму поиска с JavaScript отключенным в вашем браузере.

Другие советы

Вместо использования <input type="image">, вы можете использовать <button> элемент:

<button type="submit" style="border: 0; background: transparent">
  <img src="image.png"></img>
</button>

Эти параметры обозначают местоположение, в котором клик был осуществлен на изображении, которое является поведением по умолчанию большинства, если не всех браузеров, когда речь идет об использовании изображений в качестве кнопок отправки. Вы можете использовать обходной путь, который в основном проходит через JavaScript, чтобы отправить свою форму, очень похожую на то, что вы видите в примере Ватена. Или вы можете создать кнопку отправки, которая не является элементом формы, используя form.submit () в качестве действия, прикрепленного к этому изображению.

Вы можете использовать JavaScript, чтобы отправить подобную форму, это все еще самый простой способ:

<script>
yourForm.onSubmit = function() {
 location.href = 'main/search?search=' + encodeURIComponent(yourForm.elements['query'].value);
 return false;
}
</script>

К сожалению, я не знаю, как они это делают без JavaScript.

РЕДАКТИРОВАТЬ: Кстати, вы также можете использовать простую, которая отправит форму, когда ее нажимают.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top