在基于JEditorPane的浏览器中启用javascript的代码

时间:2013-09-08 07:41:57

标签: java javascript swing browser jeditorpane

我已经在java中编写了浏览器代码,但大多数网站都没有正确打开,可能是由于javascript不支持。所以任何人都可以建议我在浏览器中启用javascript的代码。 / p>

这是代码。

package browser;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class Browser extends JFrame
{
    private JTextField addressbar;
    private JEditorPane display;

    public Browser(){
    super("Browser");
    addressbar = new JTextField("Enter url");
    addressbar.addActionListener(
           new ActionListener(){
              public void actionPerformed(ActionEvent event){
                  loadpage(event.getActionCommand());
              }
           } 
          );
    add(addressbar, BorderLayout.NORTH);
    display = new  JEditorPane();
    display.setEditable(false);
    display.addHyperlinkListener(
         new HyperlinkListener(){
            public void hyperlinkUpdate(HyperlinkEvent event){
               if(event.getEventType()==HyperlinkEvent.EventType.ACTIVATED){
                 loadpage(event.getURL().toString());
               }
            }
            }   
          );
          add(new JScrollPane(display), BorderLayout.CENTER);
          setSize(1200,720);
          setVisible(true);
          setResizable(true);
    }
    private void loadpage(String userText){
        try{
            display.setPage(userText);
            addressbar.setText(userText);
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
}

2 个答案:

答案 0 :(得分:1)

JEditorPane类支持HTML 3.2的有限子集,但从未打算成为浏览器。

编辑器窗格使用的默认HTML editor kit不支持Javascript。

支持新的HTML元素可以添加到编辑器工具包中,但是您需要提供渲染的组件或作用于JS,.. applet的元素。

答案 1 :(得分:0)

  

我已经在java中编写了浏览器代码,但大多数网站都没有正确打开,可能是由于javascript不支持。

如果用户的浏览器不支持javascript,或者用户选择阻止执行您网站的javascript(例如使用NoScript之类的东西),那么您就不走运了。您无法启用javascript。这取决于用户。

但真正的问题很可能是你的Javascript存在可移植性问题。