Shim – оборудование высокого качества для ваших проектов
Shim - это механизм компьютерного программирования, который позволяет создавать совместимость между различными API и версиями языков программирования. Шим позволяет предоставлять совместимый интерфейс между API, которые работают на разных операционных системах или языках программирования.
Пример использования шима может быть в случае, когда нужно получить доступ к функциям, работающим на другой операционной системе или к использованию старых версий языков программирования в связи с проблемами обратной совместимости.
Вот пример использования шима в JavaScript для поддержки устаревших браузеров:
// определение функции, которая будет использоваться, если она не поддерживается в текущем браузере
function addEventListenerShim(target, eventType, listener, useCapture) {
if (target.addEventListener) {
target.addEventListener(eventType, listener, useCapture);
} else if (target.attachEvent) {
target.attachEvent('on' + eventType, listener);
} else {
target['on' + eventType] = listener;
}
}
// использование функции addEventListenerShim
var button = document.getElementById('myButton');
addEventListenerShim(button, 'click', function() { alert('Hello, world!'); }, false);
В данном примере функция addEventListenerShim определяет совместимый интерфейс, который может использоваться для добавления обработчика события на кнопку. Если в текущем браузере доступна функция addEventListener, то она будет использоваться для добавления обработчика события. Если эта функция недоступна, то будет использоваться функция attachEvent в случае, если браузер работает на базе Internet Explorer, или обычное свойство target['on' + eventType] для других браузеров. В итоге, независимо от того, какой браузер используется, обработчик события будет добавлен на кнопку.