Проверьте наличие пустого атрибута href в JQuery

0

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

Так!! Я хотел бы проверить домен и создать поле предупреждения, если это необходимо.

Скажем, у нас есть 2 домена:

test.domain.com & domain.com

ЕСЛИ мы на test.domain.com и там нет содержимого внутри href (Missing Link), я бы хотел, чтобы окно предупреждения появилось в сообщении "MISSING LINK". И если внутри href есть контент, просто игнорируйте его (Not Missing Link).

<a href="">Missing Link</a>
<a href="http://google.com">Not Missing Link</a>

Затем, если бы мы были на domain.com, я бы хотел, чтобы jQuery все еще присутствовал в коде, но он ничего не делал, если была нажата пропущенная ссылка. Поскольку это будет просто перенаправлять на главную страницу - Не лучшее путешествие, но намного лучше, чем навязчивое всплывающее окно.

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

Если это не имеет смысла, пожалуйста, спросите!

Спасибо миллион, очень ценю помощь!

Теги:

3 ответа

2
Лучший ответ
$(document).on("click", 'a[href=""]', function(evt) {
    if(window.location.hostname.indexOf("test")!==-1) {
        alert("broken");
    } else {
        window.location.href = "foo.html";
    }
    evt.preventDefault();
});

Лично, если бы я делал страницу в тесте, чтобы определить, была ли связь нарушена, я бы сделал что-то, чтобы они выделялись, когда страница открыта. Вместо того, чтобы нажимать, чтобы узнать.

if(window.location.hostname.indexOf("test")!==-1) {
    $('a[href=""]').css("background-color", "red");
}
  • 0
    Цените вашу помощь в этом - после всплывающего окна ссылка по-прежнему приводит вас на домашнюю страницу, как и без всплывающего окна. Это можно исправить?
  • 2
    Не уверен, почему это приведет вас на домашнюю страницу ..., но добавьте evt.preventDeafult (); обновленный ответ
Показать ещё 3 комментария
1

Вот вам какой-то код, чтобы вы начали. Мне кажется, что, как бы вы ни старались, они принимали совершенно неправильный подход.

if (location.host === 'test.domain.com' && !$('a[href=""]').length) {
  alert('MISSING LINK');
}
0

Как это?

$(document).ready(function() {
  $('a').click(function(e) {
    var a = $(this);
    e.preventDefault();
    if($.trim(a.prop('href')) == "")
    {
        alert("No link")
    }
    else   
    {
        window.location = $.trim(a.prop('href'));
    }
  }); 
});
  • 0
    Я не могу заставить этого работать извините!
  • 0
    действительно? работал для меня .. не могу сделать jsfiddle, потому что он разрешит пустой HREF, чтобы это было то, что его нет :( - я сделал быстрое редактирование, попробуйте это ..
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню