使用 JxBrowser 监听页面变化
Listen changes on page using JxBrowser
在 Java 项目中我使用 JxBrowser
.
我有页面
<!DOCTYPE html>
<html>
<body>
Start: <input type="text" id="startTimeField"> ms
<hr>
<button id="buttonToClick" onclick="myFunction()">Start</button>
<script>
function myFunction() {
document.getElementById('startTimeField').value = new Date().getMilliseconds();
}
</script>
</body>
</html>
我使用 JxBrowser 正确加载页面。
单击按钮 "Start" 时,将设置文本输入的值。
我想在 Java 中使用 JxBrowser 对象添加侦听器以侦听 startTimeField
文本输入更改。
例如:
startTimeField
设置为 0,单击 Start
按钮后字段更改值(按实际 ms 时间),我想在 Java 代码中检测此更改并获取更改值。
<input type="text" id="startTimeField" onchange="yourfunction">
既然问题基本上是问如何在Java中监听DOM中的事件,我想这就是你要找的:
你将不得不做类似的事情(在你的 Java 代码中):
DOMElement element = browser.getDocument().findElement(By.id("startTimeField"));
element.addEventListener(DOMEventType.OnChange, new DOMEventListener() {
public void handleEvent(DOMEvent event) {
// your code for reacting to the change here
}
}, false);
我没有测试这段代码,而是根据文档对其进行了改编,因此它可能无法立即编译和工作,但这应该会引导您走上正确的轨道。
在 Java 项目中我使用 JxBrowser
.
我有页面
<!DOCTYPE html>
<html>
<body>
Start: <input type="text" id="startTimeField"> ms
<hr>
<button id="buttonToClick" onclick="myFunction()">Start</button>
<script>
function myFunction() {
document.getElementById('startTimeField').value = new Date().getMilliseconds();
}
</script>
</body>
</html>
我使用 JxBrowser 正确加载页面。
单击按钮 "Start" 时,将设置文本输入的值。
我想在 Java 中使用 JxBrowser 对象添加侦听器以侦听 startTimeField
文本输入更改。
例如:
startTimeField
设置为 0,单击 Start
按钮后字段更改值(按实际 ms 时间),我想在 Java 代码中检测此更改并获取更改值。
<input type="text" id="startTimeField" onchange="yourfunction">
既然问题基本上是问如何在Java中监听DOM中的事件,我想这就是你要找的:
你将不得不做类似的事情(在你的 Java 代码中):
DOMElement element = browser.getDocument().findElement(By.id("startTimeField"));
element.addEventListener(DOMEventType.OnChange, new DOMEventListener() {
public void handleEvent(DOMEvent event) {
// your code for reacting to the change here
}
}, false);
我没有测试这段代码,而是根据文档对其进行了改编,因此它可能无法立即编译和工作,但这应该会引导您走上正确的轨道。