Что такое хорошая библиотека фильтров ненормативной лексики Python? [закрыто]

Как и https://stackoverflow.com/questions/1521646/best-profanity-filter , но для Python - и я ищу библиотеки, которые могу запустить и контролировать себя локально, в отличие от веб-сервисов.

(И хотя всегда приятно услышать ваши принципиальные возражения против фильтрации ненормативной лексики, я их здесь специально не ищу. Я знаю, что фильтрация ненормативной лексики не подхватит каждая обидная вещь, о которой я говорю, я знаю, что ругаться, по большому счету, не такая уж большая проблема. Я знаю, что вам нужен какой-то человеческий вклад для решения вопросов контента. Я просто хотел бы найти хорошую библиотеку, и посмотрим, что я могу с этим сделать. s от наведения одного элемента на пути к самой всплывающей подсказке (в течение разрешенного времени, 300 мс). Другими словами, флаг должен игнорировать указатели мыши на маршруте к всплывающей подсказке от исходного указателя мыши.

Чтобы логика выглядела следующим образом ...

loadtip.refMouseOver = function (e) {

    var event = e || window.event, el = event.target || event.srcElement;
    //console.log(window); // <-- throws error in IE (Member not found)
    // Reset the lastHoveredRef data.
    tipManager.lastHoveredRef = null;
    tipManager.lastHoveredRef = [el, event];

    // true means there is a tip open still, so if no tip is open.
    if (tipManager.tipState !== true) { 
        tipManager.processTip(el, event);
    } else {        
        return; // do nothing
    }

}

Ошибка «Элемент не найден» произойдет, когда я быстро наведусь на один элемент к следующему в IE с всплывающей подсказкой.

Я читал об window.open и закрывал вещи с помощью try-catch, но я не видел, как это произошло. Любая помощь очень ценится.

Спасибо

26
задан TweeZz 21 December 2011 в 10:01
поделиться

1 ответ

Хорошо, я нашел проблему.

Подводя итог, IE не будет передавать событие другой функции, если этот вызов функции находится в пределах setTimeout.

Таким образом, вы можете обмануть IE, создав копию события и передав ее, вот пример этого ...

var eventCopy = {};
for (var i in event) {
    eventCopy[i] = event[i];    
}

Затем просто отправьте вашей функции eventCopy, даже если это «полный» взлом.

setTimeout(function () { yourFunction(eventCopy), yourDelayTime);

И вуаля, все заработает.

Я должен добавить, что Internet Explorer просто создаст ссылку на глобальное событие окна, поэтому нам нужна копия события. Это потому, что к тому времени, когда setTimeout вызывает функцию, windows.event уже прошел,

Нижняя строка ... не пытайтесь отправить событие внутри setTimeout, потому что IE не примет его. Это верно для IE 6, 7 и 8 из моего тестирования.

43
ответ дан 28 November 2019 в 07:20
поделиться
Другие вопросы по тегам:

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