【问题标题】:I need help deploying a javascript from within WebView in a JavaFx 2.0 Web App我需要帮助在 JavaFx 2.0 Web 应用程序中从 WebView 中部署 javascript
【发布时间】:2011-12-14 00:17:03
【问题描述】:

我有一个 JavaFx 2.0 Web 应用程序,其中有一个显示 twitter 小部件的 Webview 组件。

当应用程序在浏览器中加载时,它不会显示 Twitter 框。

它只适用于桌面,当我从桌面启动应用程序时一切正常。

这是小部件的代码:

更新:我在应用程序中有另一个 WebView 组件,它工作正常,它在本地引用了一个 .js 文件。我决定下载其他 javascript 的源代码并在本地引用它。没用。

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>templates</title>
<meta name="author" content="Artur Vieira" />
<!-- Date: 2011-12-13 -->
    </head>
    <body>
    <div class="twitter"><script type="text/javascript" src="widget.js" language="javascript"></script> <script>
                    new TWTR.Widget({
                     version: 2,
                     type: 'search',
                     search: 'Nestroia',
                     interval: 6000,
                     title: 'Nestroia on Twitter',
                     subject: 'Follow Us on Twitter',
                     width: 80,
                     height: 250,
                     theme: {
                       shell: {
                         background: '#5584a3',
                         color: '#fff'
                       },
                       tweets: {
                         background: '#fff',
                         color: '#696966',
                         links: '#000'
                       }
                     },
                     features: {
                       scrollbar: false,
                       loop: true,
                       live: true,
                       hashtags: true,
                       timestamp: true,
                       avatars: true,
                       behavior: 'default'
                     }
                    }).render().start();
                </script>

            </div>
    </body>
    </html>

这是 JavaFX 2.0 Web 应用程序中 WebView 的代码

    Group block4 = new Group();
    block4.setLayoutX(740);
    block4.setLayoutY(180);
    WebView webTwitter = new WebView();
    webTwitter.setMinSize(158, 390);
    webTwitter.setPrefSize(158, 390);
    final WebEngine eng2 = webTwitter.getEngine();
    eng2.load("http://www.nestroia.com/twitter.html");

非常感谢任何帮助。

【问题讨论】:

  • 这很好。现在,请告诉我们您遇到了什么问题。
  • 刚刚编辑。基本上推特框不会出现。
  • 您检查浏览器的错误控制台是否有任何错误?您可能还想查看是否使用 Firebug 或 Chrome 的控制台向 Twitter 发出了任何 AJAX 请求。
  • 谢谢。推特框本身就可以正常工作 www.nestroia.com/twitter.html 只有当我将它放入应用程序时它才会显示出来
  • 我最近在测试页面时遇到一个错误,它说浏览器无法访问外部URL。我该如何解决这个问题?

标签: javascript javafx-2


【解决方案1】:

我相信您的问题是 jnlp/plugin 应用程序正在沙盒中运行并且具有安全限制。访问另一个域属于未签名应用程序的安全违规行为。见http://docs.oracle.com/javase/tutorial/security/tour1/index.html

为了避免沙盒,您可以签署您的应用程序:

如果这没有帮助,请为浏览器启用 Java 控制台并向我们显示输出: Control Panel-&gt;Java-&gt;Advanced-&gt;Java Console-&gt;Show Console

【讨论】:

  • 谢谢谢尔盖,我会试一试
  • 我签署了 jar 文件,但现在应用程序无法正常工作。它没有部署。
  • 我启用了控制台,当我运行应用程序时没有出现太多问题,控制台没有错误。浏览器显示此消息。“由于系统配置,JavaFX 应用程序无法启动。有关故障排除信息,请参阅 java.com/javafx。”
  • 听起来很奇怪。能否请您卸载 JavaFX(SDK 和运行时)。下载最新的 2.0.2 并重新安装。
  • 我安装了 JavaFX 2.0.2 和 jdk 7u2。使用 Netbeans 7.1 Release Candidate 2。要签名,我按照您告诉我的那样转到属性文件夹并选中请求无限制访问的框。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 2014-10-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
相关资源
最近更新 更多