2011-06-07 48 views
1

我试图从Servlet代码访问JavaScript函数。但是我得到下面显示的错误。 下面是代码:从Java访问Javascript

out.println("<FRAME src=\"javascript:parent.newWindow('" + URL+ "') \" scrolling=No noresize />"); 

而这是一种发生在JavaScript中的错误:

对象不支持此属性或方法;

+0

什么是“out”? – 2011-06-07 10:35:50

+0

你确定你尝试从Servlet代码访问Javascript函数吗?也许你尝试在Servlet代码中生成Javascript函数? – 2011-06-07 10:36:49

回答

4

您无法从您的servlet代码访问Javascript函数。 Javascript在客户端(=您的用户的浏览器)上执行,servlet代码在您的服务器上执行(例如Tomcat,JBoss,无论您使用什么)。

你想用你的代码完成什么?我确信有一个比你刚刚描述的更简单的方法。

[编辑]

我看你刚刚更新了你的描述,所以这里是我的观点:

我猜你想显示页面给用户,并在显示页面,您想要打开一个新窗口,该窗口将使用URL参数指示其地址来显示另一个页面。如果是这种情况,您应该在第一页的onLoad() Javascript事件中使用window.open()来做到这一点。

+0

是的。你是对的。我需要使用此方法提交发布请求。但window.open默认触发GET方法。那么,有没有其他方法可以做到这一点? – Suki 2011-06-07 11:54:43

+0

@Suki如果你真的需要显示一个页面,它会自动提交一个窗体到一个弹出窗口,它可以使用JavaScript来完成,但我认为它看起来过于复杂。也许如果你会告诉我们你的用例是什么,那么我们可以更好地帮助你找到正确的解决方案。我很难相信你会从这种方式建设中受益。 – deltaforce2 2011-06-07 12:45:02

1

window对象(这是parent引用的对象)上没有newWindow属性,所以这并不意外。

也许您正在寻找open方法?

如果是这样的话:

  • 把它作为一个iframe的src是做
  • 一个很奇怪的东西它可能会通过弹出窗口拦截器被调
0

好。您尝试在Servlet代码中生成JavaScript代码。当你这样做的时候,你的代码会转到Web浏览器,并在那里被看作是一个带有JavaScript的html文档。所以,你的错误来自网络浏览器,并链接到JavaScript错误。可能它是newWindow方法。为了打开新窗口,我应该调用window.open()函数。