Проверьте атрибут href с помощью jQuery - PullRequest
0 голосов
/ 06 марта 2011

Пусть мой сайт будет http://cars.com

У меня есть ссылки на мой сайт, на http://girls.com, http://google.com, http://happy.com и т. Д.

Вот js:

$("#wrapper a").live('click', function()
{
    var this_url = $(this).attr("href");
    $.ajax({
        url: this_url,
        complete: function(){
            //do something
        }
    });
});

Итак, когда мы нажимаем на ссылку, она загружает html этой страницы.

Как:

  1. получить адрес открытого в данный момент сайта?как $_SERVER['SERVER_NAME'] на php.
  2. sanitize атрибут href?такие символы, как "#, ?" должны быть удалены
  3. проверить, является ли этот href URL (может быть /section/images/ или просто /) для моего сайта ($_SERVER['SERVER_NAME'])?Если нет, ничего не делайте (не хотите загружать html других сайтов).

Спасибо.

Ответы [ 2 ]

2 голосов
/ 06 марта 2011
  1. Используйте свойство location.host .
  2. Используйте регулярное выражение для разбора строки.
    Например:

    var pathSection = /^[^?#]+/.exec(url)[0]
    
  3. Проверьте, начинается ли это с протокола.Используйте регулярные выражения, например /^\w+:/.
    Если у вас есть абсолютные URL-адреса для местоположений в вашем домене, вам нужно будет проверить их отдельно.
1 голос
/ 06 марта 2011

это невозможно по соображениям безопасности, ограничение называется Политика одинакового происхождения или короткая СОП.Вы можете обойти это, отправив запрос через серверный скрипт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...