如何注入javascript代码来定期刷新页面

sy5wg1nm  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(381)

我有一个普通的html文件,我想通过jxbrowser(后端java)调用它。
jxbrowser允许您通过以下方式添加javascript代码:

// 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)

谢谢您。

epggiuax

epggiuax1#

为什么要从javascript重新加载网页?为什么不改用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);
luaexgnf

luaexgnf2#

尝试使用setintraval而不是settimeout:

String test = "setInterval(function() { alert('hello'); location.reload();}, 6000)";
browser.executeJavaScript(test);

这将每6秒(6000ms)执行一次代码。下面是setinterval的一个简单示例:

setInterval(function() { console.log('refresh page') }, 6000)

相关问题