This discussion is archived
2 Replies Latest reply: Nov 22, 2012 2:42 AM by 975552 RSS

WebView not rendering correct when pages have jquery

975552 Newbie
Currently Being Moderated
Hi all,

I use the webview from javafx last version(2.2.3) bundled with jdk7. All works ok on a pages that use native(vanilla) js, but on a pages
that use jquery I see problems (some feature work some not).

Any idea-experience somebody?!

I used the very basic example from the documantation, and I just point to a page which uses jquery 1.7.3...

Blaze
  • 1. Re: WebView not rendering correct when pages have jquery
    jsmith Guru
    Currently Being Moderated
    I just point to a page which uses jquery 1.7.3
    There is no such thing. The latest jquery version on the 1.7 branch is 1.7.2 - see the past release list at: http://jquery.com/download/?rdfrom=http%3A%2F%2Fdocs.jquery.com%2Fmw%2Findex.php%3Ftitle%3DDownloading_jQuery%26redirect%3Dno

    In my usage, jquery has worked fine with WebView.

    You can try it out here by running the gist and clicking on links (which jQuery will hide):
    https://gist.github.com/3077942
    Re: Can I embed jQuery into JavaFX WebEngine?

    If there is specific functionality in JQuery which is not working, you could post steps to reproduce it in another forum post or create a bug request: https://forums.oracle.com/forums/ann.jspa?annID=1713
  • 2. Re: WebView not rendering correct when pages have jquery
    975552 Newbie
    Currently Being Moderated
    Hi,

    sorry for the version was a typo..its ofcourse 1.7.2!

    Like I said some of the features are not working. I still can not narrow down to what exactly,
    Ill will do more checking and write here again.

    Here is the example class i use:

    its pointing to https://www.softwaredemo.de , the navigation uses jquery to show dropdown lists (this all works on a normal browser)
    but in the webview is not working. I also found problems on other pages using jquery, I can post more if you need...

    Interesting is that if we use the toggle button to execute a jquery script which hides or shows the body...
    somethimes its working sometimes not,
    just throws a TypeError:

    netscape.javascript.JSException: TypeError: 'undefined' is not a function
         at com.sun.webpane.platform.WebPage.twkExecuteScript(Native Method)
         at com.sun.webpane.platform.WebPage.executeScript(WebPage.java:1438)
         at javafx.scene.web.WebEngine.executeScript(WebEngine.java:811)
         at dtn.jcustomer.SwingFXWebView$3$1.run(SwingFXWebView.java:96)
         at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
         at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
         at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
         at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
         at java.lang.Thread.run(Thread.java:722)

    /**
    * SwingFXWebView
    */
    public class SwingFXWebView extends JPanel {

    private WebView browser;
    private JFXPanel jfxPanel;

    public SwingFXWebView() {
    initComponents();
    }

    public static void main(String... args) {

    SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    final JFrame frame = new JFrame();
    frame.setName("JavaFX web view");
    SwingFXWebView p = new SwingFXWebView();
    frame.getContentPane().add(p);

    frame.setMinimumSize(new Dimension(640, 480));
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    // p.createScene();
    }
    });
    }

    private void initComponents() {

    jfxPanel = new JFXPanel();
    add(jfxPanel);

    swingButton = new JButton();
    swingButton.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
    PlatformImpl.startup(new Runnable() {
    public void run() {
    browser.getEngine().executeScript( "if( $('body').is(':visible') ) { " +
    " $('body').hide('slow'); } else {" +
    " $('body').show('slow'); }");

    browser.getEngine().executeScript( "$(\"a\").click(function(event){" +
    " event.preventDefault();" +
    " $(this).hide(\"slow\");" +
    "});");
    }
    });
    }

    });
    swingButton.setText("toggle Visible");
    add(swingButton);

    createScene();
    }

    /**
    * createScene
    *
    *
    */
    private void createScene() {
    PlatformImpl.startup(new Runnable() {
    public void run() {
    BorderPane pane = new BorderPane();
    Scene scene = new Scene(pane);

    browser = new WebView();
    browser.getEngine().load("https://www.softwaredemo.de");
    pane.setCenter(browser);

    jfxPanel.setScene(scene);

    }
    });
    }
    }

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points