css - 在 Webkit 中更改其 'position' 样式属性时删除的插件实例

标签 css webkit npapi

我正在为一种奇怪的(特定于 Webkit 的?)效果而苦苦挣扎:
当更改插件对象的“位置”属性时,我的插件被删除并立即被另一个新实例化的插件替换。

这意味着我将丢失当前插件的所有状态并使用一个新插件重新开始。

我不知道这是否是特定于 Webkit 的,因为我的插件只能在我们的嵌入式平台上运行。

代码如下:

<object id="mypluginobject" type="video/myplugin" style="width=800px, height=600px">

在 javascript 中,我这样做:

var myobject = $('mypluginobject');
myobject.style.width = '1280px'; // OK
myobject.style.height= '720px'; // OK
myobject.style.position='fixed'; // myobject disapears and is replaced by a new instance

在 NPAPI 代码中,我可以看到调用了 NPN_Destroy(),紧接着调用了 NPN_New(),所有这些都具有相同的 NPP 指针。

这让我想知道为什么这个“位置”属性似乎会触发对我的对象的完全替换。

现实生活中发生的情况是,我丢失了所有运行时信息,视频停止,而且我无法恢复。 我知道我的平台很奇特,所以所有这些可能会有副作用:

  • Webkit 322
  • 在 Qt 4.7.2 上运行
  • 在 DirectFB 上

有什么想法吗?

最佳答案

不幸的是,这在所有浏览器上都是非常标准的事情。您遇到的问题是,当您更改“位置”时,它会更改对象所在的容器;通过这样做,您实际上会导致浏览器(在内部)将其从页面中删除,然后再将其添加回去。

您可以通过更改某些浏览器上的“可见性”或“显示”来导致完全相同的问题。 “溢出”也会普遍触发这种情况。在某些情况下,将高度和宽度设置为小于 1px x 1px 也是一个类似的坏主意。插件不是很有趣吗?

避免对象及其父元素上的这些东西,你会没事的。我使用的解决方法是在我需要移动插件时始终绝对定位插件本身,然后我使用 jquery 计算“定位”元素的大小和位置,我通常会做任何我想做的事情。它可以移动,并且在它移动的任何时候(或在事件或计时器上)我计算新位置并将对象标签的 float 绝对定位父 div 重新定位到新位置。这有点老套,特别是如果您想修复它,但这是我所知道的解决问题的唯一方法。

当然,我想您也可以让您的插件善于恢复其状态,这样它何时被删除和重新添加都无关紧要。 =]

关于css - 在 Webkit 中更改其 'position' 样式属性时删除的插件实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14198418/

相关文章:

CSS:返回后悬停状态保持事件状态(Firefox)

javascript - 使用css3 和Jquery 为图像制作3d 效果?

css - 使用 Bootstrap 均匀分开单选按钮

javascript - 使用 WebInspector 的 Javascript 调试器,如何打破无限循环?

css - Safari 6 css 悬停错误

javascript - 如何使用 NPAPI 接收来自页面上 javascript 的调用?

c++ - 使用 firebreath 的浏览器插件

c - 托管 Flash 不会加载 swf 资源(xml、图像等)

javascript - 如何使用边距 : auto? 调整画廊中大小相同的图像

html - @fontface 在黑莓操作系统 7 上