如何在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();
}
}
}
相关文档:
=====能去中间==================================================
方法一:(不能去换行等)
代码简洁有力。妙就妙在split函数的使用上。先用空格分割(split)字符串,然后拼接.不得不佩服之,才思敏捷啊。看这样的代码,让人神清气爽。
function IgnoreSpaces(Str){
var ResultStr = "";
......
// 去掉字符串左边空格
function trimToLeft(str){
var i;
for(i=0;i<str.length; i++) {
if(str.charAt(i)!=" ") break;
......
由于安全方面的考虑,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 ......