SWT 从浏览器获取默认字体
SWT get default font from browser
如何根据 org.eclipse.swt.browser.Browser
中的当前 OS 获取默认浏览器字体?
例如 Windows,浏览器使用 "Times New Roman"。
使用的默认字体取决于浏览器小部件当前使用的呈现引擎(IE、Mozilla、Webkit)。
由于 Browser#getFont()
没有反映这一点,您只能解决此限制。一种可能的方法是让浏览器执行 Javascript 代码 returns body 标签的字体,如下所示:
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');" );
}
} );
这个returns至少在我的(Windows)系统上是浏览器引擎使用的实际字体。
如何根据 org.eclipse.swt.browser.Browser
中的当前 OS 获取默认浏览器字体?
例如 Windows,浏览器使用 "Times New Roman"。
使用的默认字体取决于浏览器小部件当前使用的呈现引擎(IE、Mozilla、Webkit)。
由于 Browser#getFont()
没有反映这一点,您只能解决此限制。一种可能的方法是让浏览器执行 Javascript 代码 returns body 标签的字体,如下所示:
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');" );
}
} );
这个returns至少在我的(Windows)系统上是浏览器引擎使用的实际字体。