我在沒有iframe的頁面上嵌入gfycat視頻。
Gfycat在三個不同的地方存儲視頻,具體取決於它的大小:zippy
爲小,fat
爲大,giant
爲最大。我只知道視頻ID
,不知道它存儲在哪裏。
所以,我只是爲每個商店添加資源。
這裏的代碼重複iframe embed內部結構:
Safari中的Gfycat視頻
<video preload="none" loop>
<source src="//zippy.gfycat.com/{{ID}}.mp4" type="video/mp4">
<source src="//fat.gfycat.com/{{ID}}.mp4" type="video/mp4">
<source src="//giant.gfycat.com/{{ID}}.mp4" type="video/mp4">
</video>
它後,我打電話play
方法,這裏的示例性JS:
video_element.play();
例如,在商店giant
this video商店。因此,前兩個數據源使用403代碼進行響應,但最後一個數據源是有效的,並且視頻正在播放
據我所知,這不是很漂亮的解決方案,但它適用於Chrome,Firefox和Opera。但不是在Safari。
Safari應用第一個來源,它響應403,然後其他兩個來源不會自動應用,就像在其他瀏覽器中發生的那樣。
那麼,我能解決這個問題嗎?鑑於我只能使用JS,不知道商店並且不能使用iframe。
這裏的jsfiddle來測試。
啊,Safari瀏覽器,新的Internet Explorer(是的,這再次評論,我知道)。 –
@JeremyThille(╯(╰) – Legotin