这是问题的延续(http://goo.gl/a61CG)。
我正在尝试检索包含插件的DOM窗口或文档的可见大小(不确定哪个术语是正确的)。我一直在研究Firebreath的参考资料,但我还没有得到答案。
例如在onWindowAttached中,我这样做:
m_host->htmlLog("Attaching window.");
FB::DOM::ElementPtr element_ptr(m_host->getDOMElement());
if( element_ptr )
{
int Width = element_ptr->getWidth();
int Height = element_ptr->getHeight();
std::stringstream ss;
ss << "width: " << Width << "; height: " << Height << std::endl;
m_host->htmlLog(ss.str());
}
FB::DOM::ElementPtr parent_element_ptr = element_ptr->getParentNode();
if( parent_element_ptr )
{
int Width = parent_element_ptr->getWidth();
int Height = parent_element_ptr->getHeight();
std::stringstream ss;
ss << "parent props: width: " << Width << "; height: " << Height << std::endl;
m_host->htmlLog(ss.str());
}
m_host->htmlLog("Finished attaching window.");
谷歌浏览器(第23集)现在给我这个:
Attaching window.
width: 300; height: 300
Finished attaching window.
300x300像素是指hmtl对象的大小,它命令浏览器加载插件。
那么,检索包含插件的浏览器窗口的可见区域的方法是什么?
我在Windows 7和Visual Studio 2010上使用最近的firebreath trunk版本。
谢谢, 基督教
答案 0 :(得分:1)
基本上你应该寻找的并不是具体如何用 firebreath 来实现这一点,而是如何用javascript来做到这一点。然后你就可以使用DOM元素/窗口/文档抽象来做同样的事情了。
很多人都没有意识到最好的浏览器插件开发人员也非常了解javascript。
请参阅screen width vs visible portion
现在,您需要确保在所有浏览器上进行测试;一些属性IE不通过IDispatch公开(这是FireBreath默认使用的),在这种情况下,可能需要将自定义处理程序添加到DOM抽象中;如果是这种情况(http://npapi.com/chat)我会在IRC上与我交谈,我会帮助你。