如何在Java 代码中执行 JavaScript
在实际应用中,可能会碰到这样的情况,需要在Java代码中执行JavaScript。
例如:
import java.io.IOException;
import java.io.PrintWriter;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JsService {
/**
* function : 在java类中,执行javascript代码
* @param request
* @param response
*/
public static void postJavascriptOnHTML(HttpServletRequest request, HttpServletResponse response,String javascript){
StringBuffer buffer = new StringBuffer();
buffer.append("<mce:script type="text/javascript"><!--
\n").append(javascript).append("\n
// --></mce:script>\n");
outputResponse(request,response,buffer);
}
public static void alertMessageOnHTML(HttpServletRequest request, HttpServletResponse response,String message){
StringBuffer buffer = new StringBuffer();
buffer.append("<mce:script type="text/javascript"><!--
\n")
.append(" alert('" + message + "');\n")
.append("
// --></mce:script>");
outputResponse(request,response,buffer);
}
public static void putResultInResponse(HttpServletResponse response,String result){
StringBuffer buffer = new StringBuffer();
buffer.append(result);
outputResponse(null, response, buffer);
}
private static void outputResponse(HttpServletRequest request,HttpServletResponse response,StringBuffer buffer){
try {
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter writer;
writer = response.getWriter();
writer.write(buffer.toString());
writer.flush();
writer.close();
FacesContext context = FacesContext.getCurrentInstance();
if(context != null)
context.responseComplete();
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关文档:
页面中有一个table包含两列,数据由后台生成,行数不定:(如图)
原始数据:
现在通过javascript进行查询,效果如下三图:
开始查询
查询中......
查询得到的自后结果
JAVASCRIPT代码:
JS代码
<script language="javascript" tpe="text/javascript">
function searchMateria ......
我们有时获取 styl.width为空的时候,可以获取css中的width..
但ie and ff 是不同的。。
ie:
obj.currentStyle['width']
ff:
var css = document.defaultView.getComputedStyle(obj, null);
css.getPropertyValue('width') ......
由于安全方面的考虑,Javascript被限制了跨域访问的能力,但是有时候我们希望能够做一些合理的跨域访问的事情,那么怎么办呢?
这里分两类情况:
一、基于同一父域的子域之间页面的访问;参见如下3个domain域:taobao.com、jipiao.taobao.com、promotion.taobao.com;它们有相同的父域taobao.com。
二、基于不同父域页面 ......
<input type=text onkeypress="return event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false">
<asp:TextBox ID="TextBox1" runat="server" onkeyu ......