Дима
Мне тут стало интересно — как на практике реализовать такую штуку? Правильный полифилл matchMedia по спеке. Сложность в следующем: matchMedia() возвращает экземпляр MediaQueryList. При этом MediaQueryList нельзя нормально использовать как конструктор: TypeError: Illegal constructor. В спеке говорится, что у класса есть два ридонли свойства: media — текст, содержит медиазапрос. matches — булев, собственно, результат. Браузер говорит, что эти свойства являются геттерами, а сеттеры не установлены. Получается, что matchMedia() создаёт объект с прототипом MediaQueryList.prototype и пишет в него нужные свойства. При попытке вызова addListener() или removeListener() в консоль валится TypeError: 'addListener' called on an object that does not implement interface MediaQueryList. Так. А вот здесь по-подробнее, пожалуйста. Т.е. MediaQueryList тупо реализует механизм интерфейса, который ругается, если мы используем непереопределённое свойство/метод, и ему, в общем-то, пофиг, как я выполню конечную реализацию, главное — чтобы всё было на своих местах?
Да, думаю ему достаточно имплементации нужного интерфейса. Но интерфейс там немаленький
Дима
Очень много требований в спеке
Дима
Мне тут стало интересно — как на практике реализовать такую штуку? Правильный полифилл matchMedia по спеке. Сложность в следующем: matchMedia() возвращает экземпляр MediaQueryList. При этом MediaQueryList нельзя нормально использовать как конструктор: TypeError: Illegal constructor. В спеке говорится, что у класса есть два ридонли свойства: media — текст, содержит медиазапрос. matches — булев, собственно, результат. Браузер говорит, что эти свойства являются геттерами, а сеттеры не установлены. Получается, что matchMedia() создаёт объект с прототипом MediaQueryList.prototype и пишет в него нужные свойства. При попытке вызова addListener() или removeListener() в консоль валится TypeError: 'addListener' called on an object that does not implement interface MediaQueryList. Так. А вот здесь по-подробнее, пожалуйста. Т.е. MediaQueryList тупо реализует механизм интерфейса, который ругается, если мы используем непереопределённое свойство/метод, и ему, в общем-то, пофиг, как я выполню конечную реализацию, главное — чтобы всё было на своих местах?
Но чем хороша ясная спека — достаточно её правильно выполнить пошагово для имплементации полифилла
Anonymous
Здесь, например, им придумали довольно странное место: https://github.com/Financial-Times/polyfill-service/blob/master/polyfills/matchMedia/polyfill.js#L50
Anonymous
Ещё и с багом.
Дима
Дима
Реализация скрыта от наблюдателя, как я понял
Дима
Наружу выставленны только стандартные интерфейсы, поэтому реальный лист можно думаю располагать где хочешь
Дима
Главное заимплементить все требуемые интерфейсы и не оказаться в дурке %)
Anonymous
Главное заимплементить все требуемые интерфейсы и не оказаться в дурке %)
Да. Чёт там дофига. Но, я думаю, тогда будет достаточно обеспечить корректную работу matchMedia() + предоставить наружу MediaQueryList, на случай если нужно будет сделать ... instanceof MediaQueryList.
Anonymous
привет ребят помогитеприсвоить
Anonymous
к переменной текст
Anonymous
$(document ).ready(function() { // когда документ готов <!-- заносим линк текущей страницы в скрытый инпут формы, который идентифицируем по id -- > $("#myhidden").val(document.location.href+'/ac/otchetVVZ_data.php'); alert(document.location.href); });
Anonymous
document.location.href+'/ac/otchetVVZ_data.php' КАК ПРАВИЛЬНО дописать к ней значение??
Anonymous
алерт не показывает дописанное
Igor
Операция присваивания в js производится через оператор =
Anonymous
и как к этому присвоить
Anonymous
$("#myhidden")
Anonymous
?
Anonymous
чтобы не стер записанное ранее
Svyatoslav
$(document ).ready(function() { // когда документ готов <!-- заносим линк текущей страницы в скрытый инпут формы, который идентифицируем по id -- > $("#myhidden").val(document.location.href+'/ac/otchetVVZ_data.php'); alert(document.location.href); });
Вы в инпут заносите строку, которая является конкатенацией текущего адреса и вашей строки. Это никак не влияет на адрес, чтобы изменить адрес, ему надо присвоить через = новое значение.
Александр
Привет
Александр
Может кто подсказать кое-что?
🦥Alex Fails
Давай вопрос
Александр
http://pastebin.com/gvMpXj1g
Александр
Суть в чем: не удаляется элемент при снятии галочки
Александр
Т.е, чтобы он исчез ос страницы, надо еще и страницу перезагрузить
Александр
после того как галочку снял
🦥Alex Fails
после того как галочку снял
Ты пропустил восклицательный знак
Александр
а где?
🦥Alex Fails
во второи условии
Александр
Ща проверю
Александр
if(!document.getElementById('rem').checked){
🦥Alex Fails
И вообще. Зачем два ифа, если млжно в элсе
Александр
так?
🦥Alex Fails
Проще уж убрать второй иф
Александр
щас уберу
🦥Alex Fails
Александр
Все равно снятии галочки элемент не удаляется
Александр
Приходится перезагружать страницу чтобы он исчез
🦥Alex Fails
ты, надеюсь, заменил код так, как я показал? (уточняю на всякий случай)
Александр
Да
Александр
Заменил
Александр
Смотри
Александр
http://pastebin.com/t8fgeYH5
Александр
Галочку убираю — элемент не удаляется из страницы
Александр
Остается до перезагрузки
Александр
се
Александр
Все*
Александр
Исправил
Александр
Спасиб)
Александр
Теперь все работа
Александр
Работает)
Gordey
👍
Александр
Стоп
Александр
Оно не записывается в Local Storage
Александр
=(
Александр
А, все
Александр
После if поставил };
Александр
Спасибо вам
🦥Alex Fails
Работает)
лучше правь сообщение, чем пиши их до фига
Александр
понял)
Михаил
Как сделать массив? var json = ["error" = ["msg" = "fail json"]];
🦥Alex Fails
var json = { "error": {"msg": "fail json"}}
Tim
ребят подскажите, делаю видео обои. Есть каике то скрипты которые ролики маленького размера красиво растягивают без размывания? Помню видел какие то - у них черная пиксельная сетка еще.
Anonymous
А в классах планируется сахар над параметром дескриптора writable: false? И, если да, то где почитать можно?
Tim
А по делу?
Anonymous
А что ты имеешь в виду?
Что-нибудь типа class MyClass { readonly myProp = 'myValue'; } вместо Object.defineProperty( MyClass.prototype, 'myProp', { writable: false, value: 'myValue', }, );
Narek
геттеры, нет?
Anonymous
Narek
в каком месте
Anonymous
И придётся делать сеттер, чтобы геттер не переопределили.
Anonymous
А хотя...
Anonymous
Ридонли переопределят в любом случае.