README для WhoJS

Важно отметить, что при использовании WhoJS предполагается, что все HTML-формы размечены правильно, включая теги label, имеющие правильный атрибут for, указывающий на соответствующие им input, select, textarea или что-то еще. Если форма не размечена должным образом, весьма вероятно, что Who не сможет найти правильный ввод, несмотря на наличие некоторых небольших встроенных запасных вариантов.

Начиная

Возьмите себе копию WhoJS из репозитория GitHub и включите ее на свою страницу примерно так:

<script src="javascripts/who.js"> </script>

Настройка контекста

Настройка контекста полезна для зонирования определенной части страницы, на которую смотрит пользователь. Выполнение этого примера очень быстро покажет вам изменение контекста Who. Вы можете увидеть, на какую часть страницы Кто активно смотрит, найдя область, выделенную синим цветом.

Who.setContext('#new_context_example');

Сбросить контекст

Иногда вы хотите, чтобы кто следил за всей страницей. Быстрого сброса контекста можно добиться с помощью resetContext(). Вы заметите, что при запуске этого кода контекст смещается обратно к body.

Who.resetContext();

Ввод значений в форму

Когда пользователь Who хочет ввести значение в форму, ему нужны две вещи. Текст <label>, который они ищут, и input, который будет помещен в поле.

Who.typesValueIntoForm({ 
    label : "Name", 
    input : "Neil Dahlke" 
});

Метки нечувствительны к регистру, и их также можно искать по частичному совпадению с помощью флага findByPartial.

Who.typesValueIntoForm({ 
    label : "Tail", 
    input : "Shark Fin", 
    findByPartial : true 
});

Переход по ссылкам

Who.setContext('#click_example'); 
Who.clicksElement({ 
    text : "Click Me!", 
    type : "a" 
});

или вы можете указать ссылки, используя ключевое слово LINK.

Who.setContext('#click_example'); 
Who.clicksElement({ 
    text : "Click", 
    type : "LINK", 
    findByPartial : true 
});
Who.typesValueIntoForm({ 
    label : "my name", 
    input : "J Dilla", 
    findByPartial : true 
}); 
var formVal = Who.readsFormValue({ 
    label : "My NaMe Is:" 
}); 
alert('Hi '+(formVal||"Who")+'!');

Когда вам нужно, чтобы Who на мгновение расслабился, например, пока вы что-то получаете с помощью AJAX, вы можете использовать passesTime с опцией thenWho в качестве обязательного обратного вызова, когда Who закончит ожидание.

var _start = new Date(); 
Who.passesTime({ 
    ms: 2000, 
    thenWho: function() { 
        var _end = new Date(), _waited = ((_end - _start)/1000);
        alert("Who waited "+_waited+" seconds!"); 
    } 
});