最近在做一个np api plugin的应用,windowless的plugin,可以很容易地在plugin上面覆盖html元素,但是由于我们的应用对性能要求高,最后无奈地选择了windowed plugin。只是,上面无法覆盖元素,无法满足UI设计上的要求。
参考了利用iframe覆盖flash的方法,试了试利用ifram显示windowed plugin,在firefox上成功了。可惜,我们用的是gtk版本的webkit,连iframe覆盖在windowed模式的flash上都不行,更别提windowed plugin了。
iframe覆盖flash的例子 http://hi.baidu.com/gghgdk/blog/item/7c4067d04af161c6572c8497.html
最后,查阅资料发现gtk webkit还未支持ifram shims。(见 https://bugs.webkit.org/show_bug.cgi?id=68969)参考了chrome和Qt webkit上iframe shims的实现,自己动手修改webkit并重新编译,成功实现在gtk webkit上利用iframe覆盖windowed plugin。