好吧,因为我正在做一个编码 http 服务器的小项目。代码在
http://code.google.com/p/reactor/
当前的难题是当被要求用 java 脚本和 css 解析页面时。作为一个 http 服务器,它只发送一个页面(从另一个网站复制)并且解析不正确。当一个简单的html页面被我的firefox解析时,它显示正常,但是当解析一个更复杂的页面(css + javascript)时,页面都是这样连接的:
bottom:10px;}body>div#divToplayerSmall{position:fixed;}ראשי|תוצאותLIVE|הימוריספורט|ONEבסלולרי|ONETV |גליצ'ים|BigONE|טוטוווינר| CrazyONE |
html的源代码是:
clientWidth:document.body.clientWidth)+(ignoreMe2=document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft))+'px');top:expression((0-divToplayerSmall.offsetHeight+(document. documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight)+(ignoreMe=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop))+'px');}varisTopTrans=(ToplayerBigPath .indexOf("透明")>-1)?false:true;varisRemTrans=(ToplayerSmallPath.indexOf("透明")>-1)?false:true;vartop1session=3;vartop2session=5;InitToplayer(isTopTrans,isRemTrans) ;window.onload=StartToplayer;ראשי|תוצאותLIVE|הימוריספורט|ONEבסלולרי|ONETV |גליצ'ים|BigONE|טוטוווינר| CrazyONE | documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft))+'px');top:expression((0-divToplayerSmall.offsetHeight+(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body. clientHeight)+(ignoreMe=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop))+'px');}varisTopTrans=(ToplayerBigPath.indexOf("transparent")>-1)?false: true;varisRemTrans=(ToplayerSmallPath.indexOf("transparent")>-1)?false:true;vartop1session=3;vartop2session=5;InitToplayer(isTopTrans,isRemTrans);window.onload=StartToplayer;ראשי|תוצאותLIVE|הימוריספורט|ONEבסלול |ONETV |גליצ'ים|BigONE|טוטוווינר| CrazyONE | documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft))+'px');top:expression((0-divToplayerSmall.offsetHeight+(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body. clientHeight)+(ignoreMe=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop))+'px');}varisTopTrans=(ToplayerBigPath.indexOf("transparent")>-1)?false: true;varisRemTrans=(ToplayerSmallPath.indexOf("transparent")>-1)?false:true;vartop1session=3;vartop2session=5;InitToplayer(isTopTrans,isRemTrans);window.onload=StartToplayer;ראשי|תוצאותLIVE|הימוריספורט|ONEבסלול |ONETV |גליצ'ים|BigONE|טוטוווינר| CrazyONE | offsetHeight+(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight)+(ignoreMe=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop))+'px');} varisTopTrans=(ToplayerBigPath.indexOf("透明")>-1)?false:true;varisRemTrans=(ToplayerSmallPath.indexOf("透明")>-1)?false:true;vartop1session=3;vartop2session=5;InitToplayer( isTopTrans,isRemTrans);window.onload=StartToplayer;ראשי|תוצאותLIVE|הימוריספורט|ONEבסלולרי|ONETV |גליצ'ים|BigONE|טוטוווינר| CrazyONE | offsetHeight+(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight)+(ignoreMe=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop))+'px');} varisTopTrans=(ToplayerBigPath.indexOf("透明")>-1)?false:true;varisRemTrans=(ToplayerSmallPath.indexOf("透明")>-1)?false:true;vartop1session=3;vartop2session=5;InitToplayer( isTopTrans,isRemTrans);window.onload=StartToplayer;ראשי|תוצאותLIVE|הימוריספורט|ONEבסלולרי|ONETV |גליצ'ים|BigONE|טוטוווינר| CrazyONE | indexOf("透明")>-1)?false:true;varisRemTrans=(ToplayerSmallPath.indexOf("透明")>-1)?false:true;vartop1session=3;vartop2session=5;InitToplayer(isTopTrans,isRemTrans); window.onload=StartToplayer;ראשי|תוצאותLIVE|הימוריספורט|ONEבסלולרי|ONETV |גליצ'ים|BigONE|טוטוווינר| CrazyONE | indexOf("透明")>-1)?false:true;varisRemTrans=(ToplayerSmallPath.indexOf("透明")>-1)?false:true;vartop1session=3;vartop2session=5;InitToplayer(isTopTrans,isRemTrans); window.onload=StartToplayer;ראשי|תוצאותLIVE|הימוריספורט|ONEבסלולרי|ONETV |גליצ'ים|BigONE|טוטוווינר| CrazyONE |
כותרותאחרונותצפובמייקללואיסמנצחבתחרותההטבעותבגמרהתיכונים
19/01/07 19:30
אליכהןלשחקניולקראתבני-יהודה:תיראומהאסוליןעשהלמכביחיפה
19/01/07 18:43
ליגתהעלבכדורסל:המשחקיםחוזריםליוםראשון
19/01/07 17:41
דעה:שחרפארכבריכולהלהתמודדעםשחקניותצמרת
19/01/07 16:49
ארצית:הפועלר"גניצחהאתהשקמה/ רמתחן1:2,גםראשלגםראשלצנצנצחצחצחצחצחצנצנצניייי
排
注2.5מיבנטבנטבנטסמעסמענ极2.52.5ממממממממל集原19/01/07 16:37
16
: 37
ללללגתגת
:30אתאתפעלכפQuling,ללאגללאגסבאבנננננננ
集19/01/07 14
: 450
19/01/07 13:46
varswfPeleSmall=newSWFObject("http://images.one.co.il/images/PeleEmulator/emulator_pelephone_01a.swf","peleSmall",160,470,"6","#FFFFFF"); swfPeleSmall.addParam("质量","高");swfPeleSmall.addParam("wmode","透明");swfPeleSmall.write("divPeleSmall");varswfPeleBig=newSWFObject("http://images.one.co. il/images/PeleEmulator/emulator_pelephone_02d.swf","peleBig",400,470,"6","#FFFFFF");swfPeleBig.addParam("quality","high");swfPeleBig.addParam("wmode","transparent ");swfPeleBig.write("divWithBig");
פאר:לאלאלא
极תכנכנלראמח集
20077年19/01/20077:26
שחרפאררשמשחרפאררשמבבששששהה荷集原激גדשגשגשגשג集原6:3,5:7ועלטטעלטטעלטטעלטטאנאנאנגבבבבןןצרפתצרפתצרפתצרפתצרפתצרפתצרפתצרפתצרפתצרפתצרפתצרפתצרפתצרפתצרפת原荷集。
משחק,שששאמרלרלרל极ה车,集集集
אחראחראחרשפסדאת荷兰,
פארבטבטחאתעפלעפללשלבשמ集原集原(16גדגדללתתתתת集),שםתפגשםתפגשבשבתבלשבשבתבלשבשבתבללאתסבטלנאתסבטלנק集4集3בטבטרנרנרנ极,שגברשגברשגברבבבקרעלמרקרקר极4集。
פאראמרהל-
(Firefox 和页面源 html 中只有部分页面展示)
为什么会这样?http响应中有什么内容?
StringBuffer tResponse = new StringBuffer();
tResponse.append("HTTP/1.1 200 OK\n");
tResponse.append("Date: "+new Date().toString() +'\n');
tResponse.append("server: http-reactor/0.1-dev\n");
tResponse.append("last-Modified:"+ d.toString() +'\n');
tResponse.append("Content-Type: text/html; charset=windows-1255\n");
tResponse.append("Accept-Language: he; q=1.0, en; q=0.5:);
tResponse.append("Content-Length: "+tFileContent.length()+'\n');
tResponse.append('\n');
tResponse.append(tFileContent);
public StringBuffer FetchData(String FileName) throws FileNotFoundException{
StringBuffer tFileContent = new StringBuffer();
if (FileName.contains("../"))
throw new SecurityException();
if (FileName.equals("/"))
FileName = "\\index.html";
FileName.replace('/', '\\');
File f = new File(_root + FileName);
Scanner scanner = new Scanner(f);
while(scanner.hasNext())
tFileContent.append(scanner.next());
return generateResponse(tFileContent,f.lastModified());
}
private StringBuffer generateResponse(StringBuffer tFileContent, long l) {
StringBuffer tResponse = new StringBuffer();
Date d = new Date(l);
tResponse.append("HTTP/1.1 200 OK\n");
tResponse.append("Date: "+new Date().toString() +'\n');
tResponse.append("server: http-reactor/0.1-dev\n");
tResponse.append("last-Modified:"+ d.toString() +'\n');
tResponse.append("Content-Type: text/html; charset=windows-1255\n");
tResponse.append("Accept-Language: he; q=1.0, en; q=0.5:);
tResponse.append("Content-Length: "+tFileContent.length()+'\n');
tResponse.append('\n');
tResponse.append(tFileContent);
return tResponse;
}