java + swt 设计的浏览器,如何获得网页中的元素坐标位置呢

qq779114450 2013-04-14 10:45:20

java + swt 设计的浏览器,如何获得网页中的元素坐标位置呢

js文件代码范例:

function getxy() {

mydiv = document.getElementById('lk')

// 获得mydiv里面的A元素
var mya = mydiv.getElementsByTagName('a')

// var abc = mydiv.getAttributeNode()

// 获得a元素中叫abc的连接
var n = 0
while (n < mya.length) {
if (mya.item(n).textContent == "百科") {
x = mya.item(n).offsetLeft
y = mya.item(n).offsetTop

}
n++
}

document.write(" "+x+" "+ y)
}
getxy()

</script>

如果把上面的JS代码插入到百度首页中,可以获得元素“百科”的坐标。

问题是,如果用SWT开发的浏览,希望JAVA调用JS代码来获得元素坐标,然后传回给JAVA。
类似下面的JAVA调用JS,但JAVA不能调用doucument方法,这就使得上面的JS文件无法正常运行。请问还有其他办法可以获得元素坐标吗?


import java.io.File;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class T3 {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
engine.eval("print('你好')");
// java并不支持document方法,document是客户端浏览器的API
// engine.eval("document.getElementById('lk')");
}
}
...全文
96 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
可以尝试给鼠标添加监听事件。
qq779114450 2013-04-16
  • 打赏
  • 举报
回复
这个问题也许太不好解决了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧