如何注入 JavaScript 代码来定期刷新页面
How can I inject JavaScript code to periodically refresh a page
我有一个普通的 HTML 文件,我想通过 JxBrowser(后端 Java)调用它。
JxBrowser 允许您通过以下方式添加Java脚本代码:
// Java code
Browser browser = new Browser(...);
browser.loadURL(...);
...
String test = "setTimeout(function() { alert('hello'); location.reload();}, 6000)";
browser.executeJavaScript(test);
这段代码确实会刷新页面,但只会刷新一次,因为当 html 页面刷新时,JxBrowser 添加的内容似乎都被清除了。
在不修改html文件(或前端)的情况下,是否可以添加一个脚本,使该页面每6秒连续刷新一次?
我能想到的唯一其他方法是定期执行 browser.executeJavaScript(test)。
1. create a new nonblocking thread
2. for every 6 seconds, call browser.executeJavaScript(test)
谢谢。
尝试使用 setIntraval 而不是 setTimeout:
String test = "setInterval(function() { alert('hello'); location.reload();}, 6000)";
browser.executeJavaScript(test);
这将每 6 秒(6000 毫秒)执行一次代码。
这是 setInterval 的一个简单示例:
setInterval(function() { console.log('refresh page') }, 6000)
为什么要从 Java脚本重新加载网页?为什么不从 Java 代码来做呢?例如:
Browser browser = engine.newBrowser();
Navigation navigation = browser.navigation();
navigation.loadUrl("https://www.google.com");
new java.util.Timer().schedule(new TimerTask() {
@Override
public void run() {
navigation.reload();
}
}, 1_000, 60_000);
我有一个普通的 HTML 文件,我想通过 JxBrowser(后端 Java)调用它。
JxBrowser 允许您通过以下方式添加Java脚本代码:
// Java code
Browser browser = new Browser(...);
browser.loadURL(...);
...
String test = "setTimeout(function() { alert('hello'); location.reload();}, 6000)";
browser.executeJavaScript(test);
这段代码确实会刷新页面,但只会刷新一次,因为当 html 页面刷新时,JxBrowser 添加的内容似乎都被清除了。
在不修改html文件(或前端)的情况下,是否可以添加一个脚本,使该页面每6秒连续刷新一次?
我能想到的唯一其他方法是定期执行 browser.executeJavaScript(test)。
1. create a new nonblocking thread
2. for every 6 seconds, call browser.executeJavaScript(test)
谢谢。
尝试使用 setIntraval 而不是 setTimeout:
String test = "setInterval(function() { alert('hello'); location.reload();}, 6000)";
browser.executeJavaScript(test);
这将每 6 秒(6000 毫秒)执行一次代码。 这是 setInterval 的一个简单示例:
setInterval(function() { console.log('refresh page') }, 6000)
为什么要从 Java脚本重新加载网页?为什么不从 Java 代码来做呢?例如:
Browser browser = engine.newBrowser();
Navigation navigation = browser.navigation();
navigation.loadUrl("https://www.google.com");
new java.util.Timer().schedule(new TimerTask() {
@Override
public void run() {
navigation.reload();
}
}, 1_000, 60_000);