2012-09-29 113 views
1

這是問題的延續(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."); 

谷歌瀏覽器(V.23)給我這個現在:

Attaching window. 
width: 300; height: 300 

Finished attaching window. 

的300×300像素指的是HMTL對象的尺寸命令瀏覽器加載插件。

那麼,檢索包含插件的瀏覽器窗口的可見區域的方法是什麼?

我使用的是Windows 7和最近firebreath主幹版本的Visual Studio 2010

感謝, 基督教

回答

1

基本上你應該尋找的其實不是如何與firebreath做到這一點具體來說是,但是如何用javascript做到這一點。然後,您只需使用DOM元素/窗口/文檔抽象就可以做同樣的事情。

很多人沒有意識到最好的瀏覽器插件開發人員也是那些瞭解JavaScript的人。

screen width vs visible portion

現在,你要確保你測試這個對所有的瀏覽器; IE的某些屬性不會通過IDispatch暴露(這是FireBreath默認使用的),在這種情況下,可能需要將自定義處理程序添加到DOM抽象中;如果是這種情況,請與我談談IRC(http://npapi.com/chat),我會幫你的。

+0

這非常有幫助!我會從插件調用Javascript。涼! – chhenning

相關問題