Как я могу запросить загрузку для пользователя, когда он щелкнет ссылку.
Например, вместо:
<a href="uploads/file.doc">Download Here</a>
Я мог бы использовать:
<a href="#">Download Here</a>
$('a').click... //Some jquery to download the file
Таким образом, Google не индексирует мои HREF и личные файлы.
Можно ли это сделать с помощью jQuery, если да, то как? Или это должно быть сделано с помощью PHP или чего-то такого?
Ответы:
Я мог бы предложить это как более изящное деградирующее решение, используя
preventDefault
:Даже если нет Javascript, по крайней мере, так пользователь получит обратную связь.
источник
Если вы не хотите, чтобы поисковые системы индексировали определенные файлы, вы можете использовать robots.txt, чтобы запретить веб-паукам доступ к определенным частям вашего сайта.
Если вы полагаетесь только на javascript, то некоторые пользователи, которые просматривают без него, не смогут нажимать на ваши ссылки.
источник
robots.txt
это не поможет, потому что они все равно будут храниться в истории браузера и на промежуточных серверах.Вот хорошая статья, в которой показано множество способов скрыть файлы от поисковых систем:
JavaScript - не лучший способ не индексировать страницу; это не помешает пользователям напрямую ссылаться на ваши файлы (и, таким образом, открывать их поисковым роботам), и, как сказал Роб, не будет работать для всех пользователей.
Легко исправить - добавить
rel="nofollow"
атрибут, хотя, опять же, без файла robots.txt все будет неполно.источник
Да, вам нужно будет изменить window.location.href на URL-адрес файла, который вы хотите загрузить.
источник
источник
$('blah').each(function(){ $('body').append('<a href="'+xxx+'" download="'+dynamicname+'" />'); }) $('a').trigger('click');
я использовал это.Использование функции jQuery
источник
Заявив,
window.location.href = 'uploads/file.doc';
вы показываете, где вы храните свои файлы. Вы, конечно, можете использовать .htacess для принудительного выполнения требуемого поведения для сохраненных файлов, но это не всегда может быть удобно ....Лучше создать php-файл на стороне сервера и поместить в него такой контент:
Этот код вернет ЛЮБОЙ файл в качестве загрузки, не показывая, где вы его фактически храните.
Вы открываете этот php-файл через
window.location.href = 'scripts/this_php_file.php?f=downloaded_file';
источник
Скрытые фреймы могут помочь
источник
Я предлагаю вам использовать событие mousedown, которое вызывается ПЕРЕД событием щелчка. Таким образом, браузер естественным образом обрабатывает событие щелчка, что позволяет избежать странностей в коде:
источник
См. Здесь аналогичную публикацию об использовании jQuery для очистки форм: Сброс многоступенчатой формы с помощью jQuery
Вы также можете столкнуться с проблемой, когда значения повторно заполняются стеком значений struts. Другими словами, вы отправляете свою форму, делаете все, что в классе действия, но не очищаете значения связанных полей в классе действия. В этом сценарии форма будет содержать ранее отправленные значения. Если вы каким-то образом сохраняете их, просто обнуляйте каждое значение поля в своем классе действий после сохранения и до возврата УСПЕХ.
источник