Коллеги всем доброго времени суток!
Нужна помощь.
Есть код обработчик:
diff:[ { "operation": "insert", "name": "AltNoInformationInterestd2e10eaa-14f7-4005-96b9-78145978b4f2", "values": { "layout": { "colSpan": 24, "rowSpan": 1, "column": 0, "row": 0, "layoutName": "GeneralInfoTabGridLayout8576b06a" }, "labelConfig": {}, "enabled": true, "bindTo": "AltNoInformationInterest", "controlConfig": { "checkedchanged": { "bindTo": "onInterestCheked" } } }, "parentName": "GeneralInfoTabGridLayout8576b06a", "propertyName": "items", "index": 0 }, { "operation": "insert", "name": "AltAbsentInterestb586a604-e240-48b6-ba46-2889721a98cf", "values": { "layout": { "colSpan": 24, "rowSpan": 1, "column": 0, "row": 1, "layoutName": "GeneralInfoTabGridLayout8576b06a" }, "labelConfig": {}, "enabled": true, "bindTo": "AltAbsentInterest", "controlConfig": { "checkedchanged": { "bindTo": "onInterestCheked" } } }, "parentName": "GeneralInfoTabGridLayout8576b06a", "propertyName": "items", "index": 1 }, { "operation": "insert", "name": "AltHaveInterest8b3652ac-d60d-4562-a1a5-e28a28cbce58", "values": { "layout": { "colSpan": 24, "rowSpan": 1, "column": 0, "row": 2, "layoutName": "GeneralInfoTabGridLayout8576b06a" }, "labelConfig": {}, "enabled": true, "bindTo": "AltHaveInterest", "controlConfig": { "checkedchanged": { "bindTo": "onInterestCheked" } } }, "parentName": "GeneralInfoTabGridLayout8576b06a", "propertyName": "items", "index": 2 }, ], methods: { onInterestCheked : function() { debugger; //var event = window.event; if(event) { if(event.currentTarget.toString() != "[object XMLHttpRequest]") { if(this.get("AltNoInformationInterest") == false && event.currentTarget.id.indexOf("AltNoInformationInterest") >= 0) { this.set("AltNoInformationInterest", true); this.set("AltAbsentInterest", false); this.set("AltHaveInterest", false); } if(this.get("AltAbsentInterest") == false && event.currentTarget.id.indexOf("AltAbsentInterest") >= 0) { this.set("AltAbsentInterest", true); this.set("AltNoInformationInterest", false); this.set("AltHaveInterest", false); } if(this.get("AltHaveInterest") == false && event.currentTarget.id.indexOf("AltHaveInterest") >= 0) { this.set("AltHaveInterest", true); this.set("AltAbsentInterest", false); this.set("AltNoInformationInterest", false); } } } else { console.log(""); } }, }
В хроме работает отлично, но в FireFox ругается на event. т.к. не определено и не отображало часть контента карточки.
определил event:
var event = window.event;
ошибку перестало бить но метод перестал корректно работать:
Chrome: http://prntscr.com/lkanf6
Firefox: http://prntscr.com/lkaoau
Кто нибудь сталкивался с подобным? И как с этим бороться?
Заранее благодарен.
Нравится
Можно попробовать для каждого типа браузеров определить логику, получив браузер
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
Проще проверять на null значение event и если да — применять то или иное обходное решение.
WebKit follows IE's old behavior of using a global symbol for "event", but Firefox doesn't. When you're using jQuery, that library normalizes the behavior and ensures that your event handlers are passed the event parameter.
Вопрос с этой особенностью Firefox рассматривается во многих местах, см. ссылки: 1, 2, 3, 4, 5.