如何根据org.eclipse.swt.browser.Browser
的当前操作系统获取默认浏览器字体?
例如,在Windows上,浏览器使用" Times New Roman"。
答案 0 :(得分:1)
使用的默认字体取决于浏览器小部件当前使用的呈现引擎(IE,Mozilla,Webkit)。
由于Browser#getFont()
没有反映这一点,因此您只能解决此限制。一种可能的方法是让浏览器执行返回body标签字体的Javascript代码,如下所示:
Browser browser = new Browser( shell, SWT.NONE );
browser.setText( "<html><head></head><body></body></html>" );
browser.addProgressListener( new ProgressAdapter() {
public void completed( ProgressEvent event ) {
Object font = browser.evaluate( "return document.defaultView.getComputedStyle( document.body, null ).getPropertyValue('font-family');" );
}
} );
这至少在我的(Windows)系统上返回浏览器引擎使用的实际字体。