JS文件用document.write写一个正常JS的问题

godxiaocao 2011-06-17 04:50:38
网页特效时都会用到JS,问一个JS问题
JS文件正常,内容假设为a,这时候,网页能正常显示.
当把JS文件内容写成这样(document.write("<script>a</scritp>");),这时候就不正常了,有经验的知道什么回事吗?
...全文
375 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
godxiaocao 2011-06-20
  • 打赏
  • 举报
回复
找出原因了,是生成文件的时候把\"这个转义去除了而导致无法正确显示
godxiaocao 2011-06-17
  • 打赏
  • 举报
回复
是的,本来可以显示的JS文件,因为程序的须要,必须写成document.write( "[!--JS文件内容--] ")这样的格式,而且这样一样能正确显示..我先把JS文件的内容中的"变成'号,这个JS也能正确显示,现在我把这个JS文件写成document.write( "[!--JS文件内容--] ");的形式,结果怎么都不能正确显示,按道理,语法都正确的啊
豆虫 2011-06-17
  • 打赏
  • 举报
回复
LZ的意思是服务端返回的大段html代码(含有js) 到客户端时直接运行 显示出界面效果 是这样吗
godxiaocao 2011-06-17
  • 打赏
  • 举报
回复
楼上的我试来都不行,应该不是这个转义的问题.
我详细说下我要做的步骤:
一个可以正常显示的JS内容如下:
var imgs = new Array();
var simgs = new Array();
var hrefs = new Array();
var digest = new Array();

/* 大图 */
imgs[imgs.length] ="img/1.jpg";
imgs[imgs.length] ="img/2.jpg";
imgs[imgs.length] ="img/3.jpg";
imgs[imgs.length] ="img/4.jpg";
//imgs[imgs.length] ="/cms/flash/p-19.gif";


/* 小图 */
simgs[simgs.length] ="img/1.jpg";
simgs[simgs.length] ="img/2.jpg";
simgs[simgs.length] ="img/3.jpg";
simgs[simgs.length] ="img/4.jpg";
//simgs[simgs.length] ="/cms/flash/p-19s.gif";

/* 链接 */
hrefs[hrefs.length] = "http://www.wc3c.com";
hrefs[hrefs.length] = "http://www.0668.com";
hrefs[hrefs.length] = "http://bbs.0668.com";
hrefs[hrefs.length] = "http://www.4sb.cn";



/* 标题 */
digest[digest.length] = "零点智慧";
digest[digest.length] = "茂名资讯网";
digest[digest.length] = "0668论坛";
digest[digest.length] = "4SB";


var nn=1;
function change_img(i){
if(arguments[0] != null){
nn=i;
window.clearInterval(tt);
}
showJdt(nn++);
if( (nn)>imgs.length ){ nn=1;}
tt=setTimeout("change_img()",5000);
}

function showJdt(i){
onClass(i-1);
var bimg = document.getElementById("jdt_img");
var jdtlink = document.getElementById("jdt_link");
var jdttext = document.getElementById("jdt_text");
bimg.setAttribute("src",imgs[i-1]);
jdtlink.setAttribute("href",hrefs[i-1]);
jdttext.innerHTML = digest[i-1];
}

function onClass(n){
var obj = document.getElementById("jdt_small_pics");
var pics = obj.getElementsByTagName("li");
for(var i=0;i<pics.length;i++){
pics[i].className = "off";
}
pics[n].className = "on";
}
var jdtStyle = "";
jdtStyle += "<style type=\"text\/css\"> ";
jdtStyle += "#jdt_small_pics {float:left;width:100%;height:70px;padding-left:0;margin-left:0;margin-top:0}";
jdtStyle += " *html #jdt_small_pics {height:60px}";
jdtStyle += "#jdt_small_pics img{cursor:hand;width:78px;height:50px;float:left;margin:0;padding:0;border:1px solid #fff} ";
jdtStyle += "#jdt_small_pics li.on {line-height:0;cursor:hand;margin-right:3px;display:inline;float:left;padding-top:8px;filter:alpha(opacity=100);-moz-opacity:1;opacity:1;background:url(http:\/\/image.yesky.com\/TLimages\/chinabyte\/newscenter\/images\/jdt_arrow.gif) center 2px no-repeat} ";
jdtStyle += "#jdt_small_pics li.off {line-height:0;margin-right:3px;float:left;display:inline;padding-top:8px;filter:alpha(opacity=50);-moz-opacity:0.5;opacity:0.5} ";
jdtStyle += "#jdt_small_pics .on img {border:1px solid #c00} ";
jdtStyle += "#jdt_small_pics .off img {border:1px solid #bbb} ";
jdtStyle += "li {list-style:none} ";
jdtStyle += "<\/style> ";
document.write(jdtStyle);
var jdtHtml = "";
jdtHtml += "<div id=\"jdt080604\" style=\"float:left;width:100%;height:100%\"> ";
jdtHtml += " <div id=\"jdt_big_pics\" style=\"width:100%;height:200px;position:relative\"><a href=\""+hrefs[0]+"\" id=\"jdt_link\"><img src=\""+imgs[0]+"\" id=\"jdt_img\" width=\"330\" height=\"200\" border=\"0\"\/><\/a> ";
jdtHtml += " <div style=\"filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;position:absolute;left:0;top:179px;width:100%;height:21px;background:#015595;\"><\/div> ";
jdtHtml += " <div style=\"position:absolute;left:0;top:179px;width:100%;height:21px;line-height:21px;color:#fff;font-size:12px;font-weight:bold;text-align:center;text-indent:1em;overflow:hidden;white-space:nowrap;\" id=\"jdt_text\">"+digest[0]+"<\/div> ";
jdtHtml += " <\/div> ";
jdtHtml += " <ul id=\"jdt_small_pics\"> ";
for(var i=0;i<imgs.length;i++){
if(i != 0 && i != (simgs.length-1) ){
jdtHtml += " <li class=\"off\"><a href=\""+hrefs[i]+"\"><img src=\""+simgs[i]+"\" width=\"75\" height=\"58\" border=\"0\" onmouseover=\"onClass(1);change_img("+(i+1)+")\"\/> <\/a>";
}else if(i == 0){
jdtHtml += " <li class=\"on\"><a href=\""+hrefs[i]+"\"><img src=\""+simgs[i]+"\" width=\"75\" height=\"58\" border=\"0\" onmouseover=\"onClass(0);change_img("+(i+1)+")\" \/> <\/a>";
}else{
jdtHtml += " <li class=\"off\" style=\"margin-right:0\"><a href=\""+hrefs[i]+"\"><img src=\""+simgs[i]+"\" width=\"75\" height=\"58\" border=\"0\" onmouseover=\"onClass(3);change_img("+(i+1)+")\"\/> <\/a>";
}
}
jdtHtml += " <\/ul> ";
jdtHtml += " <\/div> ";
document.write(jdtHtml);
change_img();



function setTab(name,cursel,n,fun){
for(i=1;i<=n;i++){
var menu=document.getElementById(name+i);
var con=document.getElementById("con_"+name+"_"+i);
menu.className=i==cursel?"hover":"";
if(con!=null){
con.style.display=i==cursel?"block":"none";
}
}
if(fun!=''&&fun!=undefined){
var exfun=eval(fun);
}
}

现在问题就是把这个JS内容作为一个JS模板,程序就读这个模板,在生成JS文件的时候,程序死定生成JS文件的内容格式为document.write("[!--这里是读模板的数据--]");
这知道明白我的意思不?
d1f2h3 2011-06-17
  • 打赏
  • 举报
回复
上面2方法都可以 转义或者拆分<script>
jiashu912387 2011-06-17
  • 打赏
  • 举报
回复
document.write("<scr"+"ipt">a</sc"+"ript>")
PPP2 2011-06-17
  • 打赏
  • 举报
回复
你是不是想显示<script>a</scritp>给用户看吗?<script>在里面被解释了,你要实现,应该用:
document.write("<script>a</script>");

87,915

社区成员

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

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