Альтернативы для использования “#\” в атрибуте href [дубликат]

Переменная среды FIGNORE хороша, когда Вы хотите, чтобы заполнение клавишей Tab проигнорировало файлы или папки с определенными суффиксами, например:

export FIGNORE="CVS:.svn:~"

Использование переменная среды IFS, когда Вы хотите определить разделитель объекта кроме пространства, например:

export IFS="
"

Это сделает Вас способными циклично выполниться через файлы и папки с пробелами в них, не выполняя волшебства, как это:

$ touch "with spaces" withoutspaces
$ for i in `ls *`; do echo $i; done
with
spaces
withoutspaces
$ IFS="
"
$ for i in `ls *`; do echo $i; done
with spaces
withoutspaces
45
задан Community 23 May 2017 в 11:47
поделиться

8 ответов

Лучшее решение - вообще не использовать какой-либо фиктивный заполнитель. Используйте значимый URL-адрес, который, если бы ссылка действительно была пройдена, показала бы вам информацию, которую вы получили бы из запроса AJAX.

Я регулярно делаю это в своих веб-приложениях, используя Javascript для улучшения рабочего сайта. Например, HTML:

<a href="/users/index" rel="popup">View users</a>

Javascript (jQuery):

$('a[rel*="popup"]').click(function() {
    loadPopup({    // whatever your favourite lightbox is, etc..
        url: this.href
    });
    return false;
});

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

43
ответ дан 26 November 2019 в 21:21
поделиться

Я обычно использую это:

href="javascript:void(0);"

Установка атрибута привязки href на javascript: void (0); указывает браузеру, что эта привязка не является гиперссылкой на другой документ или привязкой,

17
ответ дан 26 November 2019 в 21:21
поделиться

Зачем вам нужно что-то определять в href?

Вот как работает SO =>

<a id="close-question-1871874" title="closes/opens question for answering....">
  close<span title="3 more vote(s) needed to close this question"> (2)</span>
</a>

Но - если ссылка действительно должна куда-то перемещаться - сохраните обычный href
и просто обычное поведение e.preventDefault () с jQuery.

2
ответ дан 26 November 2019 в 21:21
поделиться

Если ваш обработчик onclick возвращает false , браузер не будет переходить по ссылке. Попробуйте следующее:

<a href="#" onclick="alert('No # in the address bar!'); return false;">Click Me</a>

РЕДАКТИРОВАТЬ:

Если вы абсолютно не желаете использовать октоторп (например, символ # ), вам не обязательно. Попробуйте это:

<a href="" onclick="alert('No change in the address bar!'); return false;">Click Me</a>
7
ответ дан 26 November 2019 в 21:21
поделиться

Я всегда использую это:

Щелкните, как вам нравится

0
ответ дан 26 November 2019 в 21:21
поделиться

Использование символа «#» в качестве заполнителя в основном делает ссылку «активной». Браузер интерпретирует это как тег, указывающий на что-то еще. Если href пуст, браузер будет считать, что тег a - это просто еще один тег.

Чтобы решить эту проблему, можно назначить некоторый CSS другому тегу, который имитирует ту же функциональность, что и тег. При наведении курсора измените мышь, подчеркните, измените цвет и т. Д. Вы можете легко изменить статус окна и создать впечатление, что пользователь нажимает на ссылку, хотя на самом деле он не щелкает ссылку, а создает событие щелчка. .

На самом деле, это лучший вариант, потому что запуск только JS-функции через привязку событий, которую нельзя использовать без JavaScript, не следует рассматривать как ссылку.

0
ответ дан 26 November 2019 в 21:21
поделиться

никф опередил меня; Однако следует упомянуть несколько вещей. Никогда не используйте протокол «javascript» для ссылки (если только вы не хотите, чтобы она была букмарклетом). Это противоположно прогрессивному улучшению. По возможности атрибут href должен быть реальным ресурсом URI, чтобы его можно было корректно ухудшить. Во всех остальных случаях рекомендуется использовать символ «#» и использовать соответствующий JavaScript, чтобы предотвратить прокрутку страницы вверх. Это можно сделать двумя способами. В обработчике кликов либо запретите действие по умолчанию, либо верните false.

$('a[rel*="popup"]').click(function(e) {
    e.preventDefault();
    loadPopup({url: this.href});
});

или

$('a[rel*="popup"]').click(function() {
    loadPopup({url: this.href});
    return false;
});
1
ответ дан 26 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: