диспетчеризация домена. * не работает в IE - PullRequest
3 голосов
/ 07 апреля 2011

У нас есть расширение, которое должно срабатывать на каждой странице, которую загружает пользователь.Мы попытались сделать это, используя домен ". *" В блоке отправки.Хотя это прекрасно работает в Firefox и Chrome, IE вообще не уважает это.

Это известная проблема или есть обходные пути к домену ". *"?К сожалению, мы находимся в уникальной ситуации, когда мы не можем перечислить все домены, на которых мы хотим запустить наше расширение.

1 Ответ

4 голосов
/ 08 апреля 2011

Похоже, я нашел ответ на свой вопрос.

Не похоже, что версия Kynetx IE поддерживает это "из коробки".В настоящее время он использует функцию c #:

if (document.domain.EndsWith(domain))
{
    plantTags = true;
    break;
}

plantTags - это флаг, используемый, чтобы показать, вставлять код расширения на страницу или нет.EndsWith просто видит, заканчивается ли текущая строка (document.domain) тем, что вы ей передаете.Зная это, вы можете поместить в домен ".com" домен ".net" и т. Д., И это должно работать на всех страницах, хотя я не проверял это.

Вместо этого я просто использовал регулярное выражение, добавив его встрока 6 в файле BHO / BHO.cs:

using System.Text.RegularExpressions;

, а затем изменяя строки 182-190 с:

foreach (String domain in domainlist)
{
    //reportMessage("onDocComplete", "Matching " + domain + " to doc domain " + document.domain);
    if (document.domain.EndsWith(domain))
    {
        plantTags = true;
        break;
    }
}

На:

foreach (String domain in domainlist)
{
    Regex objDomainPattern = new Regex(domain);
    //reportMessage("onDocComplete", "Matching " + domain + " to doc domain " + document.domain);
    if (objDomainPattern.IsMatch(document.domain))
    {
        plantTags = true;
        break;
    }
}

Стам мне просто пришлось заново скомпилировать код расширения (в загрузку исходного кода включены инструкции о том, как это сделать), и я был выключен!Мое расширение IE теперь будет выполнять сопоставление на основе регулярного выражения из блока домена.Надеюсь, это когда-нибудь поможет кому-то еще!

...