Ajax & Link Деградация - PullRequest
       3

Ajax & Link Деградация

1 голос
/ 24 августа 2011

Я загружаю в HTML-страницы через Ajax. Эти файлы не имеют тегов <title><head><body> и т. Д. В них всего несколько делений.

В данный момент я размещаю ссылки на эти страницы ajax в моем href для браузеров с отключенным JS:

<a href="assets/ajax/honda.html">Honda</a>

В javascript есть return false, поэтому пользователь никогда не попадает на эту страницу физически, если его браузер поддерживает javascript.

Меня беспокоит, что люди могут щелкнуть правой кнопкой мыши и отправить эти ссылки другим людям. Который выглядел бы плохо, поскольку он не имеет стиля и т. Д. У меня возникает соблазн удалить ссылку href из-за этого.

Есть ли альтернативы запутыванию ссылок? Это противоречит моим идеалам, касающимся лучших практик, чтобы полностью удалить ссылку из ссылки.

Ответы [ 4 ]

3 голосов
/ 24 августа 2011

Это противоречит моим идеалам, касающимся лучших практик, чтобы полностью удалить ссылку из ссылки.

Я тоже стремлюсь следовать передовым методам, но то, что ты делаешь, на самом деле хуже, чем отсутствие href вообще.

Атрибут href должен использоваться только для URL-адресов, которые пользователи могут просматривать напрямую. Использование его для хранения URL для использования в Ajax является обычным явлением ( Переполнение стека делает это ), но это неправильное использование атрибута href.

Если возможно, href должен указывать на полную страницу, которая содержит контент, который будет загружен Ajax. Если вы не можете этого предоставить, то либо удалите href, либо установите что-то вроде "#".

2 голосов
/ 24 августа 2011

Вам не нужно запутывать это, и я также не думаю, что вам нужно удалить его. Если вы используете язык на стороне сервера, вы можете проверить

X-Requested-With: XMLHttpRequest

Заголовок HTTP на каждой странице. Если он не установлен, он не был запрошен с помощью Ajax. Затем вы можете перенаправить пользователя на нужную страницу.

1 голос
/ 24 августа 2011

Одним из решений, которое будет работать хорошо, но включит некоторую работу, будет создание страниц с ухудшением качества контента. Вы можете создавать копии страниц, которые были полными документами HTML, и использовать их URL в ссылках, например ::

.
<a href="assets/view/honda.html">Honda</a>

При извлечении контента с использованием AJAX вы должны заменить view в URL-адресе на ajax.

Таким образом, страницы также будут проиндексированы поисковыми роботами.

0 голосов
/ 24 августа 2011

Возможно, вы могли бы использовать тег data для сохранения / извлечения вашего значения в div с использованием стиля mocklink. FIDDLE

Как то так.

<div class="mockLink" data-link="/test/link/honda.html">Honda</div>

CSS

div.mockLink{color:blue; text-decoration:underline}
div.mockLink:hover{cursor:pointer;}

JS

$('div.mockLink').click(function(){
   alert($(this).data('link')) ;
   //do AJAX
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...