js 字符串问题

fuyou001 2010-11-29 09:35:40
描述:
在a.jsp里的文本框里有些js代码,要以参数的形式传给b.jsp,这段js代码要在b.jsp里运行

a.jsp里的js代码如下:

function ltCreateCookie(name,value,second){if(second){var date=new Date();date.setTime(date.getTime()+(second*1000));var expires='; expires='+date.toGMTString()}else var expires='';document.cookie=name+'='+value+expires+'; path=/'}function ltreadCookie(name){var nameEQ=name+'=';var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length)}return null}function lteraseCookie(name){ltCreateCookie(name,'',-1)};
var ltdmTime=12*3600;
var ldDate=new Date();
var ldHour=ldDate.getHours();
if(ldHour>12){ltdmTime = (24-ldHour)*3600;}
var cookieName='ngy_ltdm';
var cookieVal = ltreadCookie(cookieName)||1;
if(cookieVal==1){document.writeln("<script type='text/javascript'>; var cpmMode=4; ; var cpmIntervel=1; alert('a');;<\/script>;<script language='javascript' src='http://new.netgy.com/cpm/turn?s=1'><\/script>;");
ltCreateCookie(cookieName,'2',ltdmTime);
}else if(cookieVal==2){document.writeln("<script type='text/javascript'>; var cpmMode=4; ; var cpmIntervel=1; alert('a');;<\/script>;<script language='javascript' src='http://new.netgy.com/cpm/turn?s=1'><\/script>;");
ltCreateCookie(cookieName,'3',ltdmTime);
}else if(cookieVal==3){document.writeln("<script type='text/javascript'>; var cpmMode=4; ; var cpmIntervel=1; alert('a');;<\/script>;<script language='javascript' src='http://new.netgy.com/cpm/turn?s=1'><\/script>;");
ltCreateCookie(cookieName,'4',ltdmTime);
}else {document.writeln("<script type='text/javascript'>; var cpmMode=4; ; var cpmIntervel=1; alert('a');;<\/script>;<script language='javascript' src='http://new.netgy.com/cpm/turn?s=1'><\/script>;");
ltCreateCookie(cookieName,'1',ltdmTime);
}


在b.jsp里取的参数代码和上面一样,假设jsp里变量jsCode 是上面js代码的字符串
我在b.jsp里的<script>块这里这样调用 eval("<%=jsCode%>")
但报错,我以为是"没转义的原因,第二次试时在取得js代码参数时,把"全部替换成\" ,可还是报同样的错误

我也试过
var script = document.createElement("script")
script.type = "text/javascript";
script.innerHTML="<%=jsCode%>";
document.getElementsByTagName('head')[0].appendChild(script);
也报错


1:要解决上面的问题,有什么办法,反正我的需求是a.jsp里的一段代码,要以参数的形式传给b.jsp 然后在b.jsp里执行

注:上面的代码肯定正常,因为我直接复制到b.jsp里script 块里能正常执行
...全文
91 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuyou001 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sohighthesky 的回复:]
或者

HTML code

<script>
<%=jsCode%>
</script>
[/Quote]

谢谢,为啥我就没想到呢!这样可以执行
还有上面的错误可能是由哪引起的
Acesidonu 2010-11-29
  • 打赏
  • 举报
回复
escape先编码,传过去再解码试试。
sohighthesky 2010-11-29
  • 打赏
  • 举报
回复
或者

<script>
<%=jsCode%>
</script>
sohighthesky 2010-11-29
  • 打赏
  • 举报
回复
可以指定 为一个文件啊,用script的src

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧