我试图通过鼠标点击获取位置。我有以下代码:
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class test {
public static void main(String[] args) {
final Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
final JTextField addressBar = new JTextField(
"https://developer.here.com/api-explorer/maps-js/v3.0/infoBubbles/position-on-mouse-click");
addressBar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
browser.loadURL(addressBar.getText());
}
});
JPanel addressPane = new JPanel(new BorderLayout());
addressPane.add(new JLabel(" URL: "), BorderLayout.WEST);
addressPane.add(addressBar, BorderLayout.CENTER);
JFrame frame = new JFrame("Website");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(addressPane, BorderLayout.NORTH);
frame.add(view, BorderLayout.CENTER);
frame.setBounds(1, 1, 1300, 700);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
browser.loadURL(addressBar.getText());
try {
Thread.sleep(5000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
当我从网站点击该地图时,我会收到一个带有坐标的消息框。
我的问题是如何获得这些坐标(数字)?
我从网站上获得了这个脚本并使用它创建了一个hmtl文件,并通过将它们写入文本文件来获得一些javascript代码。
它没有工作,之后我意识到根据互联网上的一些人不可能使用javascript在文件中写入数据(存在安全风险)。
所以在它之后,javascript选项已关闭。现在我想知道是否有可能以某种方式从messageBox获取这些信息...
我不得不提到我只能用javascript和Java编写代码。
我正在使用JxBrowser
在我的Java应用程序和Swing for GUI中显示网页。
Calculating a Location from a Mouse Click
是一个网站,为您提供点击位置坐标,使用alertwindow(在javascript中)发送的位置。当我在Java应用程序中打开此站点时,我没有收到alertwindow(因为我使用Java而不是浏览器打开它),我收到了JOptionPane.showMessageDialog
。
所以我想要的是从JOptionPane
中提取/获取坐标。
答案 0 :(得分:0)
当应显示JavaScript警告对话框时,将调用DialogHandler.onAlert()方法。它发生在调用window.alert()JavaScript函数时。 通过覆盖 DialogHandler.onAlert()
,您可以管理警报browser.setDialogHandler(new DialogHandler() {
@Override
public void onAlert(DialogParams params) {
String url = params.getURL();
String title = "The page at " + url + " says:";
String message = params.getMessage();
JOptionPane.showMessageDialog(null, message, title, JOptionPane.PLAIN_MESSAGE);
}
有关JXBrowser here
的其他信息检查教程javascript对话框