如题,大家可以一起来讨论看看。
我写了一个简单的agent,部分代码如下
dim session as new notessession
dim doc as notesdocument
dim argument as string
argument = getReturnValue
getReturnValue方法如下:
function getReturnValue
Dim return_val as string
Print |<script language="javascript">|
Print |var str_test = "aaaaa"|
Print |</script>|
getReturnValue = ????[怎么样写才可以得到js的变量str_test的值?]
end function
我试过以下一种方法,但是不行。
print """"+ return_val +""" = str_test"
------解决方案--------------------
如果是B/S的话,代码根本不应该这么写的。javascript运行在客户端,而lotusscript运行在服务器。你那个getReturnValue函数,服务器只是输出一段HTML文本到客户端浏览器,浏览器运行这段代码才得到str_test 的值,这时候程序已经在客户端浏览器上了,只有把str_test 的值写到字段(或者URL)里,然后提交页面才可以发回服务器(Ajax技术允许不提交页面与服务器交互是个例外)。
------解决方案--------------------
你的程序设计有问题。
如楼上所说这是前后端通信的问题,而且就算前端用Ajax将值传递给后端同一个agent,但是触发的是这个agent的另一个运行实例,和你当前print js的agent没有任何关联,除非用doc等临时容器承载传递数据,否则无法视线。