RU

Приведение плееров к стандарту HTML

Nex Moderator 29.07.2012 06:29 9 comments 7562 views

Оба существующих плеера с ограниченной поддержкой 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.

Фигасе, а я не знал. Тогда конечно, тут целое поле для багов….

Воден:

И как мы можем этому процессу способствовать?

Вы никак не можете, это я Байту написал, чтобы он был в курсе, когда возьмется за доработку плееров. Чем раньше эти ошибки будут исправлены, тем лучше.

Обсудили на канале, Байт обещал подумать над предложениями.

Log in or Register to post comments.