Я работаю над проектом, который позволяет конечным пользователям встраивать flash в свои собственные HTML-страницы, в то время как мы предлагаем различные способы, чтобы пользователь мог выбрать тот, который подходит для их обстоятельств, например, большинство блогов не приветствуют пользователей внедрить JavaScript на их страницах, поэтому SWFObject был бы невозможен, мы предложили два других пути: IFrame и старая, но хорошая пара Object / Embed. Так же, как старый код встраивания Youtube:
<object width="560" height="349">
<param name="movie" value="http://www.youtube.com/v/rgyL08nhtkw?version=3&hl=zh_TW"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/rgyL08nhtkw?version=3&hl=zh_TW" type="application/x-shockwave-flash" width="560" height="349" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>
Каким-то образом новый IE9 превращает теги выше в это:
<object width="560" height="349" althtml="<embed src="http://www.youtube.com/v/rgyL08nhtkw?version=3&hl=zh_TW" type="application/x-shockwave-flash" width="560" height="349" allowscriptaccess="always" allowfullscreen="true"></embed>">
<param name="movie" value="http://www.youtube.com/v/rgyL08nhtkw?version=3&hl=zh_TW"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
</object>
Как вы можете видеть, IE9 помещает встраиваемую часть в атрибут с именем "althtml" в теге объекта, а кавычки разрушают синтаксис, все flashvars и params после "althtml" больше не работают.
Мне интересно, есть ли способ помешать IE9 сделать это? Безопасно ли использовать только объект и оставлять его в покое?