javascript - 在开发过程中巧妙地忽略 netscape.javascript.JSException

标签 javascript eclipse applet word-wrap appletviewer

Eclipse 允许您使用sun.applet.AppletViewer 调试小程序。它实际上会启动小程序,运行它并模拟完整的浏览器运行时。如果您的小程序中有 javascript 操作代码,这将导致 JSException,因为当前上下文不是真正的 JS 支持引擎。

您将如何解决这个问题?我可以看到几种可能的路径:

  1. 将异常包装在 try {} catch () 中并忽略它 - 不是好的做法。
  2. 传递和环境标志,告诉代码我们当前处于 Debug模式,这样它就不会尝试执行 JS 代码 - 好的,但需要每个开发人员手动干预。
  3. 识别当前上下文不是浏览器 - 如何?
  4. 找到另一个可以模拟完整浏览器行为(包括 JS)的 AppletViewer - 有吗?
  5. 更多?

感谢您的想法。

最佳答案

我设法想出的不是一个万无一失的解决方案,而是一个可行的解决方案:

private void notifySelectionState(){
    JSObject jsObject = null;

    try {
        jsObject = JSObject.getWindow(applet);

        // An exception can be thrown here (hopefully) only is running in debug environment...
    } catch (JSException e) {
        // So actually what I'm doing here is checking (in a very lame fashion) for if I'm in a the browser
        // content or in the AppletViewer
    } 

    if (jsObject != null) {
        jsObject.call(...);
    }
}

关于javascript - 在开发过程中巧妙地忽略 netscape.javascript.JSException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/671123/

相关文章:

javascript - 将视频和 Canvas 大小调整为最大尺寸

javascript - 在物体上使用它

java - 小程序在浏览器中显示为空

eclipse - 如何在eclipse中解决 "ssh error occurred during unpacking on the remote end: unpack-objects abnormal exit"

java - egit 中工作集的团队同步

Java Applet 沙盒安全性,本地访问与外部访问

java - 如何在 Jess 中制作一个 java gui 作为小程序?

javascript - 根据用户在 Openlayers 3 中的输入在 map 上绘制图标

javascript - 试图让 AngularJS/SCSS codepen 在本地运行......?

java - 无法解析为类型错误