我想在SWT浏览器中设置并设置位置,但我不知道如何。
首先,我创建了一个浏览器控件:
Browser browser = new Browser(shell, SWT.NONE);
然后我发布了一个HTML文档:
File file = new File("C:\\test\\index.html");
browser.setUrl(file.toURI().toString());
到目前为止完美无缺。 现在,我向下滚动页面以查找有趣的文本段落,然后单击菜单项以创建一种书签。 我的问题是:如何获得当前焦点位置(x,y)以记住文本中的点,以及如何稍后重置位置以“应用”特定书签?
答案 0 :(得分:1)
您可以通过Browser#evaluate()
和Browser#execute()
与浏览器内容进行互动。
这两种方法都允许在浏览器文档的上下文中执行Javascript。
要发送查询当前位置的Javascript代码,请使用以下内容:
Object position = browser.evaluate( "window.getCurrentPosition();" );
返回值的类型取决于所评估的代码。通过代码进行调试,看看实际的返回类型是什么。
如果您对返回值不感兴趣,请使用execute
。例如,要设置您将使用的当前位置:
browser.evaluate( "window.setCurrentPosition( x, y );" );
请注意,Javascript是伪代码,并不会实际返回当前位置。
如果您遇到SWTException
,则文档可能尚未完全加载,您需要延迟执行Javascript代码,直到完全加载为止,如下所述:
https://stackoverflow.com/a/7802717/2986905