2013-07-31 64 views
0

我得到了一個插件,並內嵌到我的網頁頁面,該插件用於播放媒體文件(MP3播放,MP4 ,M3U8等)。我的網頁看起來像:移動NPAPI插件對象?[瀏覽器,Firefox]

<div id='div1'>Plugin</div> 
<div id='div2'><div id='div2sub'></div></div> 

插件像

<object id='plugin' type='xxxx' width='xxxx' height='xxxx'></object> 

問題創建的:當我從DIV1移動插件div2sub,如:

var x = document.getElementById('plugin'); 
var y = document.getElementById('div2sub'); 
y.appenChild(x); 

然後我找到結果 IE:插件仍在播放媒體文件,視頻,音頻輸出,它工作正常(ActiveX插件) Chrome和FireFox:沒有視頻,音頻輸出,插件不再播放媒體文件(npapi插件)

我找到了原因是:與IE,插件剛搬來,而不是破壞然後重新創建,與Chrome和Firefox的插件被摧毀然後重新創建,我有一個函數註冊的pluin,鉻控制檯顯示回調事件我的插件從來沒有收到回調事件,所以媒體文件無法播放。

我的問題是:有沒有反正我可以做只是移動插件,而該插件不會被破壞,並與Chrome和Firefox重建,只是工作方式和IE瀏覽器。

感謝您的幫助......

回答

1

這是NPAPI插件,雖然非常標準的問題;當我們在DOM中移動它們時,它們在任何瀏覽器中的行爲都不可靠。如果將父容器更改爲顯示,則會出現類似問題:無,可見性:隱藏,溢出:無等。ActiveX控件更加有趣。

我使用的解決方法是將插件的浮動絕對定位的div。我在我想要插件的頁面上放置另一個div,然後在需要移動時,我計算定位div的絕對位置並將浮動div移到該位置。這有點破解,但效果很好。

+0

感謝您的回答。 – user2638168

+0

是的,在使用'display:None'時,會出現此問題。 – user2638168

+0

當我躲在我只設置寬度= 1,高度= 1 – taxilian