以JSP形式返回javascript函数

时间:2014-04-28 18:29:51

标签: javascript jsp

我有一个javascript函数(get_deviceprint())返回UI数据,如ip,resolution,device等。我需要将它作为表单的一部分返回给servlet。我知道该功能有效,因为console.log(get_deviceprint());正确地在Web控制台中显示信息。

所以问题是将其作为字符串传递回服务器。我试过了

<input type="hidden" name="devicePrint" value="<script type="text/javascript"> get_deviceprint()</script>"/>

但返回<script type=

我也试过"return get_deviceprint()" 但是字面上会返回"return get_deviceprint()

那么我应该把它作为值?

谢谢!

1 个答案:

答案 0 :(得分:6)

您似乎对html的基本部分和编程语言感到困惑:上下文。 html是由标签构成的。标签可能包含可能具有值的属性。

以树状形式:

tag
 | attribute = value
 | attribute
tag
 | attribute = value
tag
tag
 | attribute
...

或更具体地说:

<input type="password" hidden />
<img src="goat.png" />
<div>Blah</div>

当浏览器(和你)浏览一个标签并尝试理解它时,它需要某些字符。它知道<开始标记,>结束标记,<标记名称后,等等。翻阅一些文本并提取意义被称为&#34;解析&#34;,你遵循的规则被称为&#34;语法&#34;。

在上面的示例中,浏览器会看到<input type="password" hidden />,并可以将其细分为以下内容:

<input type="password" hidden />
       ^-------------^ ^----^
          attr=value    attr
^------------------------------^
              tag

html语法不允许您在属性的值中指定标记。它只是将它视为常规值。

<input type="password" value="<div>blah</div>" />
       ^-------------^ ^---------------------^
          attr=value          attr=value
^-----------------------------------------------^
                       tag

当你考虑它时,它会更有意义:一个值成为标签意味着什么? value="<div>blah</div>" 做什么?你怎么理解它?

所以我们解决了我们的问题:html是静态的,但你想动态地改变它。输入javascript和DOM(文档对象模型):

var input = magically_get_the_input_element();
input.value = get_deviceprint();

DOM是将html解析为可以使用javascript与之交互的对象的结果。这意味着您可以操作页面,这正是您想要的。这是一个很大的话题,我不会努力在这里介绍它,但这里有一些指向你可以学习javascript和DOM的地方: