Приведение плееров к стандарту HTML
Оба существующих плеера с ограниченной поддержкой HTML - классический и AeroQSP, работют не по браузерным стандартам. Я не говорю о поддержке тегов и атрибутов, есть другие отличия. В данный момент, чтобы игра работала в браузере, приходится “лепить костыли” - на лету перехватывать выводимый игрой HTML-код, подправлять его, только после этого отдавать его браузеру, и то же самое в обратном направлении.
Предлагаю привести плееры к стандарту HTML по перечисленным ниже несовместимостям. Это позволит избавиться от костылей, а также сделает более удобным перенос игр между плеерами.
1. Выполнение действия по ссылке.
Когда мы выполняем код по ссылке вида <a href=“EXEC:PL’1’”>…</a>, то браузер отрабатывает нормально. “EXEC:” считается браузером за неизвестный протокол(URL scheme), и мы обрабатываем содержимое ссылки стандартными средствами. Когда же мы встречаем ссылку вида <a href=“1”>…</a>, то происходит следующее: протоколом по умолчанию считается http:, соответственно браузер “думает”, что это адрес сайта, и пытается открыть “http://1".
Предлагаю решение: использовать префикс “QSPACT:” для выполнения действий по нажатию ссылки.
2. Координаты и размеры в пикселах.
Сейчас в AeroQSP все координаты и размеры в пикселах задаются так:
“left:1; top:2; width:100;”
В то время как для браузера это не работает, ему нужна такая запись:
“left:1px; top:2px; width:100px;”
3. CSS-атрибут “background-image”.
Сейчас в AeroQSP используется такая запись:
“background-image:image.png;”
в то время как для браузера это не работает, ему нужна такая запись:
“background-image:url(image.png);”
4. Неправильный эскейпинг символов.
Не эскейпятся амперсанды. Неправильно работает эскейп кавычек в атрибутах тегов.
Это довольно сложно. Эскейпинг “по-старому” будет работать в AeroQSP и классическом плеере, но в браузере работать не будет.
& должно быть &
" должно быть ”
' должно быть ’
Когда же мы встречаем ссылку вида <a href=“1”>…</a>
А такое встречается? И какой смысл этого кода?
В остальном - верное мышление.
А к какому именно стандарту? 2.0? 3.2? 4.0? 4.01? 5.0? (тобы заранее знать, какие плюшки будут, а о каких луше не мечтать)
И как мы можем этому процессу способствовать?
Zeantar,
такой код используется крайне редко. Именно поэтому можно его безболезненно поменять.
Воден,
к стандарту сегодняшнего браузера. Чтобы написанный для AeroQSP и классического плеера код нормально воспринимался браузером без ухищрений.
Разные браузеры реализуют поддержку одной и той же версии стандарта HTML слегка по разному. И браузеры поддерживают несколько версий стандарта HTML одновременно.
Поэтому говорить о “стандарте сегодняшнего браузера” довольно бессмысленно.
И гложет любопытство:
Zeantar:
Когда же мы встречаем ссылку вида <a href=“1”>…</a>
А такое встречается? И какой смысл этого кода?
В остальном - верное мышление.
как эта ссылка возникает? Т.е. из какого кода QSP возникают такие чудовища - чтобы стараться не создавать такой код.
Ну, тут Некс слегка гиперболизировал проблему. Написать “href=1” не сможет даже новичок. Но, вероятно, Некс намекал на то, что новичкам не свойственно знания основ HTML и прочего технического кода.
Разные браузеры реализуют поддержку одной и той же версии стандарта HTML слегка по разному. И браузеры поддерживают несколько версий стандарта HTML одновременно.
Поэтому говорить о “стандарте сегодняшнего браузера” довольно бессмысленно.
Тем не менее, все перечисленные мной несовместимости совершенно одинаково не работают в любом современном браузере.
как эта ссылка возникает? Т.е. из какого кода QSP возникают такие чудовища - чтобы стараться не создавать такой код.
Это документированная фича QSP, введенная ещё во времена классического плеера. Цитирую справку:
Если в качестве ссылки для “A HREF” указано число, то при клике по ссылке будет произведена обработка действия с данным индексом. Индексация действий ведётся с 1.
Nex:
Это документированная фича QSP, введенная ещё во времена классического плеера. Цитирую справку:
Если в качестве ссылки для “A HREF” указано число, то при клике по ссылке будет произведена обработка действия с данным индексом. Индексация действий ведётся с 1.
Фигасе, а я не знал. Тогда конечно, тут целое поле для багов….
Воден:
И как мы можем этому процессу способствовать?
Вы никак не можете, это я Байту написал, чтобы он был в курсе, когда возьмется за доработку плееров. Чем раньше эти ошибки будут исправлены, тем лучше.
Обсудили на канале, Байт обещал подумать над предложениями.