在textarea中预览内容

时间:2012-03-17 06:39:49

标签: java gwt

在IE浏览器中预览内容时出现以下错误。我不明白为什么会出现这个错误。错误堆栈如下:

  

00:37:03.281 [错误]未捕获的异常已转义   java.lang.AssertionError:尝试从com.google.gwt.event.shared.HandlerManager $ HandlerRegistry.removeHandler(HandlerManager)的事件类型中删除未知处理程序:com.google.gwt.user.client.ui.ListenerWrapper$WrappedClickListener@54b245 .java:98)com.google.gwt.event.shared.HandlerManager $ HandlerRegistry.access $ 7(HandlerManager.java:91)com.google.gwt.event.shared.HandlerManager.doRemove(HandlerManager.java:273) com.google.gwt.event.shared.HandlerManager.access $ 1(HandlerManager.java:271)com.google.gwt.event.shared.HandlerManager $ 2.execute(HandlerManager.java:289)com.google.gwt .event.shared.HandlerManager.handleQueuedAddsAndRemoves(HandlerManager.java:298)位于com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:183)com.google.gwt.user.client.ui.Widget .fireEvent(Widget.java:52)com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:116)com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget) .ja va:100)com.capgent.cpt.client.ImageRollover.onBrowserEvent(ImageRollover.java:250)at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1307)com.google.gwt .user.client.DOM.dispatchEvent(DOM.java:1263)at sun.reflect.GeneratedMethodAccessor218.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method .invoke(Method.java:585)com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) )com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:1713)com.google.gwt。 dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:165)位于com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120)的com.google.gwt.dev.shell。在com.google.gwt.dev.shell.MovleMace.invokeNativeObject(ModuleSpace.java:264)的com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java)上的ModuleSpace.invokeNative(ModuleSpace.java:507): 91)在sun.reflect的com.google.gwt.core.client.impl.Impl.apply(Impl.java)com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188)位于com.google.gwt.dev.shell的java.lang.reflect.Method.invoke(Method.java:585)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)的.GeneratedMethodAccessor164.invoke(未知来源) .MethodAdaptor.invoke(MethodAdaptor.java:103)位于com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java) :157)com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java:1668)com.googl上com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:401)的com.google.gwt.dev.shell.BrowserChannel.reactToMessages egwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222)at java.lang.Thread.run(Thread.java:595)

预览内容的代码如下:

private static native void previewContent() /*-{
   top.consoleRef = window.open("","previewTemplate","");
   top.consoleRef.document.writeln(
      '<html><head><title>Template Preview</title></head>'
      +'<body>'
      + value
      +'</body></html>'
   )
   top.consoleRef.document.close()
}-*/;

value是要预览的内容。

1 个答案:

答案 0 :(得分:1)

不知道这是否是您的错误,但您必须在JSNI方法中使用$wnd而不是window

来自GWT JSNI page:

  

请注意,代码未引用JavaScript窗口对象   直接在方法内部。访问浏览器的窗口时   来自JSNI的文档对象,您必须将它们引用为$ wnd和$ doc,   分别。您编译的脚本在嵌套框架和$ wnd中运行   和$ doc会自动初始化以正确引用主机   页面的窗口和文档。

另请参阅此问题:Which is the difference between $doc.getElementById(“id”) and document.getElementById(“id”) in JSNI

相关问题