此代码在以下行中的IE和Chrome中失败:
top.document.getElementById('LikeStatusBar' + statusid).innerHTML = ' ';
此代码在firefox 4中运行良好.AJAX ASP页面like_status.asp完美无缺,只返回一些HTML代码以显示在页面中。
以下是完整的javascript代码:
function LikeSU(statusid,option,mediaid)
{
if (option == 'l')
{
document.getElementById('fmeProcess').src = '/ajax/like_unlike.asp?statusid=' + statusid + '&mediaid=' + mediaid + '&option=' + option;
document.getElementById('StatusLike' + statusid).innerHTML = ' · <a href="javascript:void(0)" onclick="LikeSU(' + statusid + ',\'u\')">Unlike</a>'
GetLikeDisplay(statusid);
}
else
{
document.getElementById('fmeProcess').src = '/ajax/like_unlike.asp?statusid=' + statusid + '&mediaid=' + mediaid + '&option=' + option;
document.getElementById('StatusLike' + statusid).innerHTML = ' · <a href="javascript:void(0)" onclick="LikeSU(' + statusid + ',\'l\')">Like</a>'
GetLikeDisplay(statusid);
}
}
function GetLikeDisplay(statusid)
{
var xmlHttp = GetXmlHttpObject();
var url="/ajax/like_status.asp?statusid=" + statusid
if (!xmlHttp){
alert ("Browser does not support HTTP Request")
return
}
xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState == 1)
{
top.document.getElementById('LikeStatusBar' + statusid).innerHTML = '<table cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-left:5px"><img src="/images/register_loading.gif" alt="Loading"/></td><td style="color:#c0c0c0;padding-left:8px">Loading...</td></tr></table>';
}
if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
{
if(xmlHttp.responseText == "NoLikes")
{
top.document.getElementById('LikeStatusBar' + statusid).innerHTML = ' ';
top.document.getElementById('LikeCountDisplay' + statusid).style.display = 'none';
top.document.getElementById('LikeStatusBar' + statusid + 'Gap').style.display = 'none';
}
else
{
top.document.getElementById('LikeStatusBar' + statusid).innerHTML = xmlHttp.responseText;
top.document.getElementById('LikeCountDisplay' + statusid).style.display = '';
top.document.getElementById('LikeStatusBar' + statusid + 'Gap').style.display = '';
}
}
};
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}
function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
关于如何在IE和Chrome中修复此问题的任何想法..
非常感谢, 保罗
添加代码
<!--#include virtual="/inc/global.asp"-->
<% IF NOT UserIsLoggedIn() THEN %>
<script language="javascript" type="text/javascript">
top.parent.location.href = '/';
</script>
<% END IF %>
<!--#include virtual="/inc/adovbs.inc"-->
<!--#include virtual="/inc/common.inc"-->
<%
Dim pstrOut, MemberID, paryFriendStatus, StatusUpdate
cData.SQL = "sp_MemberConnection " _
& cData.ProcFld("MODE","RECENTFRIENDUSERSTATUSPOSTS",2,True) _
& cData.ProcFld("MemberID",cSession.MemberID,0,False)
paryFriendStatus = cData.RSArray()
IF isArray(paryFriendStatus) THEN
pstrOut = "<table border=""0"" width=""555"" cellspacing=""0"" cellpadding=""0"">" & vbCr
FOR i = 0 TO uBound(paryFriendStatus,2)
pstrOut = pstrOut & "<tr id=""MemberStatus" & paryFriendStatus(5,i) & """>" & vbCr _
& "<td style=""padding:4px 0px 4px 0px"">" & vbCr _
& "<table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">" & vbCr _
& "<tr>" & vbCr
IF ISNULL(paryFriendStatus(6,i)) THEN
pstrOut = pstrOut & "<td style=""width: 75px"" valign=""top"" align=""center"">" & GetMemberAvatar(paryFriendStatus(0,i),C_SMALLAVATAR,True,True) & "</td>" & vbCr
ELSE
pstrOut = pstrOut & "<td style=""width: 75px"" valign=""top"" align=""center"">" & GetMemberAvatar(paryFriendStatus(6,i),C_SMALLAVATAR,True,True) & "</td>" & vbCr
END IF
pstrOut = pstrOut & "<td valign=""top"" class=""mainlink f5"">" & vbCr _
& "<table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""width:100%"">" & vbCr _
& "<tr>" & vbCr
IF paryFriendStatus(2,i) = "has joined Storeboard!" OR paryFriendStatus(2,i) = "joined Storeboard!" THEN
StatusUpdate = DisplayName(paryFriendStatus(0,i)) & " joined Storeboard!"
ELSE
StatusUpdate = paryFriendStatus(2,i)
END IF
IF ISNULL(paryFriendStatus(6,i)) THEN
pstrOut = pstrOut & "<td style=""font-size:13px""><b style=""color:#0389BB"">" & MemberLink(paryFriendStatus(0,i),"BlueLink1") & ":</b> <span class=""mainlink-u"">" & FindLinks(StatusUpdate) & "</span></td>" & vbCr
ELSE
pstrOut = pstrOut & "<td style=""font-size:13px"">" & vbCr _
& "<div style=""float:left"">" & vbCr _
& "<table cellpadding=""0"" cellspacing=""0"" border=""0"">" & vbCr _
& "<tr>" & vbCr _
& "<td><b style=""color:#0389BB"">" & MemberLink(paryFriendStatus(6,i),"BlueLink1") & "</b></td>" & vbCr _
& "<td style=""padding:0px 4px 0px 4px""><img src=""/images/m2b_arrow.gif"" alt=""Arrow""/></td>" & vbCr _
& "<td><b style=""color:#0389BB"">" & MemberLink(paryFriendStatus(0,i),"BlueLink1") & ":</b> </td>" & vbCr _
& "</tr></table></div>" & vbCr _
& "<div style=""float:left""><span class=""mainlink-u"">" & FindLinks(StatusUpdate) & "</span></div></td>" & vbCr
END IF
pstrOut = pstrOut & "</tr>" & vbCr
SET DbConn = Server.CreateObject("ADODB.connection")
DbConn.Open DSN_LINK
SET oRSbn = Server.CreateObject("ADODB.recordset")
strSQLCount = "SELECT count(*) as comment_count FROM StatusComments WHERE MemberStatusID = " & paryFriendStatus(5,i) & ";"
oRSbn.open strSQLCount, DbConn
nTotalComments = oRSbn("comment_count")
oRSbn.Close
IF cSession.MemberID = "33" OR cSession.MemberID = "102" THEN
IF FetchLikeStatus(cSession.MemberID,paryFriendStatus(5,i)) = "" THEN
pstrOut = pstrOut & "<tr style=""height:25px"">" & vbCr _
& "<td class=""mainlink f5""><span style=""color:#808080"">" & HowLongAgo(paryFriendStatus(4,i)) & "</span><span id=""StatusLike" & paryFriendStatus(5,i) & """> · <a href=""javascript:void(0)"" onclick=""LikeSU(" & paryFriendStatus(5,i) & ",'l')"">Like</a></span> · <a href=""javascript:void(0)"" onclick=""ShowCommentBox(" & paryFriendStatus(5,i) & ")"">Comment</a> · <a href=""javascript:void(0)"" onclick=""ConfirmStatusRemoval(" & paryFriendStatus(5,i) & ")"">Remove</a>" & vbCr
ELSE
pstrOut = pstrOut & "<tr style=""height:25px"">" & vbCr _
& "<td class=""mainlink f5""><span style=""color:#808080"">" & HowLongAgo(paryFriendStatus(4,i)) & "</span><span id=""StatusLike" & paryFriendStatus(5,i) & """> · <a href=""javascript:void(0)"" onclick=""LikeSU(" & paryFriendStatus(5,i) & ",'u')"">Unlike</a></span> · <a href=""javascript:void(0)"" onclick=""ShowCommentBox(" & paryFriendStatus(5,i) & ")"">Comment</a> · <a href=""javascript:void(0)"" onclick=""ConfirmStatusRemoval(" & paryFriendStatus(5,i) & ")"">Remove</a>" & vbCr
END IF
IF nTotalComments > 3 THEN
pstrOut = pstrOut & " · <a href=""#"">View all " & nTotalComments & " comments</a>" & vbCr
END IF
pstrOut = pstrOut & "</td>" & vbCr _
& "</tr>" & vbCr
ELSE
IF FetchLikeStatus(cSession.MemberID,paryFriendStatus(5,i)) = "" THEN
pstrOut = pstrOut & "<tr style=""height:25px"">" & vbCr _
& "<td class=""mainlink f5""><span style=""color:#808080"">" & HowLongAgo(paryFriendStatus(4,i)) & "</span><span id=""StatusLike" & paryFriendStatus(5,i) & """> · <a href=""javascript:void(0)"" onclick=""LikeSU(" & paryFriendStatus(5,i) & ",'l')"">Like</a></span> · <a href=""javascript:void(0)"" onclick=""ShowCommentBox(" & paryFriendStatus(5,i) & ")"">Comment</a>" & vbCr
ELSE
pstrOut = pstrOut & "<tr style=""height:25px"">" & vbCr _
& "<td class=""mainlink f5""><span style=""color:#808080"">" & HowLongAgo(paryFriendStatus(4,i)) & "</span><span id=""StatusLike" & paryFriendStatus(5,i) & """> · <a href=""javascript:void(0)"" onclick=""LikeSU(" & paryFriendStatus(5,i) & ",'u')"">Unlike</a></span> · <a href=""javascript:void(0)"" onclick=""ShowCommentBox(" & paryFriendStatus(5,i) & ")"">Comment</a>" & vbCr
END IF
IF cLng(paryFriendStatus(0,i)) = cLng(cSession.MemberID) THEN
pstrOut = pstrOut & " · <a href=""javascript:void(0)"" onclick=""ConfirmStatusRemoval(" & paryFriendStatus(5,i) & ")"">Remove</a>" & vbCr
END IF
IF nTotalComments > 3 THEN
pstrOut = pstrOut & " · <a href=""#"">View all " & nTotalComments & " comments</a>" & vbCr
END IF
pstrOut = pstrOut & "</td></tr>" & vbCr
END IF
Set ShowComments = Server.CreateObject("ADODB.recordset")
IF nTotalComments >= 3 THEN
nNumToShow = 3
ELSEIF nTotalComments = 2 THEN
nNumToShow = 2
ELSE
nNumToShow = 1
END IF
' SHOW LIKE COUNTER
IF CountStatusLikes(paryFriendStatus(5,i)) > 0 THEN
pstrOut = pstrOut & "<tr id=""LikeCountDisplay" & paryFriendStatus(5,i) & """>" & vbCr
ELSE
pstrOut = pstrOut & "<tr id=""LikeCountDisplay" & paryFriendStatus(5,i) & """ style=""display:none"">" & vbCr
END IF
pstrOut = pstrOut & "<td>" & vbCr _
& "<table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""width:350px"">" & vbCr _
& "<tr style=""background-color:#EAF6F6"" id=""LikeStatusBar" & paryFriendStatus(5,i) & """>" & vbCr
IF CountStatusLikes(paryFriendStatus(5,i)) > 0 THEN
IF FetchLikeStatus(cSession.MemberID,paryFriendStatus(5,i)) = "" THEN
IF CountStatusLikes(paryFriendStatus(5,i)) = 1 THEN
pstrOut = pstrOut & "<td style=""padding:5px;border-bottom:1px #D8EEEE solid""><table cellpadding=""0"" cellspacing=""0"" border=""0""><tr><td><img src=""/images/thumbup_blue.gif"" alt=""Likes""/></td><td style=""padding-left:5px"" class=""f5 mainlink""><a href=""" & MemberURL(FetchOneLikeMember(paryFriendStatus(5,i))) & """>" & DisplayName(FetchOneLikeMember(paryFriendStatus(5,i))) & "</a> Likes This.</td></tr></table>" & vbCr
ELSE
pstrOut = pstrOut & "<td style=""padding:5px;border-bottom:1px #D8EEEE solid""><table cellpadding=""0"" cellspacing=""0"" border=""0""><tr><td><img src=""/images/thumbup_blue.gif"" alt=""Likes""/></td><td style=""padding-left:5px"" class=""f5"">" & CountStatusLikes(paryFriendStatus(5,i)) & " Members Like This.</td></tr></table>" & vbCr
END IF
ELSE
IF CountStatusLikes(paryFriendStatus(5,i)) = 1 THEN
pstrOut = pstrOut & "<td style=""padding:5px;border-bottom:1px #D8EEEE solid""><table cellpadding=""0"" cellspacing=""0"" border=""0""><tr><td><img src=""/images/thumbup_blue.gif"" alt=""Likes""/></td><td style=""padding-left:5px"" class=""f5"">You Like This</td></tr></table>" & vbCr
ELSEIF CountStatusLikes(paryFriendStatus(5,i)) = 2 THEN
pstrOut = pstrOut & "<td style=""padding:5px;border-bottom:1px #D8EEEE solid""><table cellpadding=""0"" cellspacing=""0"" border=""0""><tr><td><img src=""/images/thumbup_blue.gif"" alt=""Likes""/></td><td style=""padding-left:5px"" class=""f5"">You And <a href=""" & MemberURL(FetchOneLikeMember(paryFriendStatus(5,i))) & """>" & DisplayName(FetchOneLikeMember(paryFriendStatus(5,i))) & "</a> Like This.</td></tr></table>" & vbCr
ELSE
pstrOut = pstrOut & "<td style=""padding:5px;border-bottom:1px #D8EEEE solid""><table cellpadding=""0"" cellspacing=""0"" border=""0""><tr><td><img src=""/images/thumbup_blue.gif"" alt=""Likes""/></td><td style=""padding-left:5px"" class=""f5"">You And " & CountStatusLikes(paryFriendStatus(5,i)) - 1 & " Members Likes This.</td></tr></table>" & vbCr
END IF
END IF
pstrOut = pstrOut & "</td></tr>" & vbCr
IF CountStatusLikes(paryFriendStatus(5,i)) > 0 THEN
pstrOut = pstrOut & "<tr style=""height:2px;background-color:#FFFFFF"" id=""LikeStatusBar" & paryFriendStatus(5,i) & "Gap"">" & vbCr
ELSE
pstrOut = pstrOut & "<tr style=""height:2px;background-color:#FFFFFF;display:none"" id=""LikeStatusBar" & paryFriendStatus(5,i) & "Gap"">" & vbCr
END IF
pstrOut = pstrOut & "<td></td></tr></table></td></tr>" & vbCr
ELSE
pstrOut = pstrOut & "<td style=""padding:5px;border-bottom:1px #D8EEEE solid""> </td></tr>" & vbCr _
& "<tr style=""height:2px;background-color:#FFFFFF;display:none"" id=""LikeStatusBar" & paryFriendStatus(5,i) & "Gap"">" & vbCr _
& "<td></td></tr></table></td></tr>" & vbCr
END IF
strSQL = "SELECT TOP " & nNumToShow & " * FROM StatusComments WHERE MemberStatusID = " & paryFriendStatus(5,i) & " ORDER BY StatusCommentTime ASC;"
ShowComments.open strSQL, DbConn
IF NOT ShowComments.EOF THEN
ShowComments.MoveFirst
Do while NOT ShowComments.EOF
pstrOut = pstrOut & "<tr id=""StatusComment" & ShowComments("StatusCommentID") & """>" & vbCr _
& "<td>" & vbCr _
& "<table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""width:350px"">" & vbCr _
& "<tr style=""background-color:#EAF6F6"">" & vbCr _
& "<td style=""padding-top:4px;width:50px"" align=""center"" valign=""top"">" & GetMemberAvatar(ShowComments("MemberID"),C_TINYAVATAR,False,False) & "</td>" & vbCr _
& "<td valign=""top"" style=""padding:3px 4px 3px 0px"">" & vbCr _
& "<table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""width:100%"">" & vbCr _
& "<tr>" & vbCr _
& "<td><b style=""color:#0389BB"">" & MemberLink(ShowComments("MemberID"), "BlueLink1") & ":</b> " & FindLinks(ShowComments("StatusComment")) & "</td>" & vbCr _
& "</tr>" & vbCr _
& "<tr>" & vbCr _
& "<td style=""color:#777777"">" & HowLongAgo(ShowComments("StatusCommentTime"))
IF cLng(paryFriendStatus(0,i)) = cLng(cSession.MemberID) OR cLng(ShowComments("MemberID")) = cLng(cSession.MemberID) THEN
pstrOut = pstrOut & " · <a href=""#"" onclick=""ConfirmStatusCommentDelete(" & ShowComments("StatusCommentID") & ")"">Delete</a>" & vbCr
END IF
pstrOut = pstrOut & "</td>" & vbCr _
& "</tr>" & vbCr _
& "</table>" & vbCr _
& "</td>" & vbCr _
& "</tr>" & vbCr _
& "<tr style=""height:2px;background-color:#FFFFFF"">" & vbCr _
& "<td></td>" & vbCr _
& "</tr>" & vbCr _
& "</table>" & vbCr _
& "</td>" & vbCr _
& "</tr>" & vbCr
ShowComments.movenext
loop
END IF
ShowComments.Close
SET ShowComments = Nothing
SET DbConn = Nothing
pstrOut = pstrOut & "<tr style=""display:none"" id=""ShowComment" & paryFriendStatus(5,i) & """>" & vbCr _
& "<td>" & vbCr _
& "<table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""width:350px"">" & vbCr _
& "<tr style=""background-color:#EAF6F6"">" & vbCr _
& "<td style=""padding-top:4px;width:50px"" align=""center"" valign=""top"">" & GetMemberAvatar(cSession.MemberID,C_TINYAVATAR,False,False) & "</td>" & vbCr _
& "<td valign=""top"" style=""padding:4px 4px 4px 0px"">" & vbCr _
& "<table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""width:100%"">" & vbCr _
& "<tr>" & vbCr _
& "<td id=""Comment" & paryFriendStatus(5,i) & """></td>" & vbCr _
& "</tr>" & vbCr _
& "<tr>" & vbCr _
& "<td style=""color:#777777"" id=""CommentTime" & paryFriendStatus(5,i) & """></td>" & vbCr _
& "</tr>" & vbCr _
& "</table>" & vbCr _
& "</td>" & vbCr _
& "</tr>" & vbCr _
& "</table>" & vbCr _
& "</td>" & vbCr _
& "</tr>" & vbCr _
& "<tr>" & vbCr _
& "<td>" & vbCr _
& "<form action="""" method=""post"" name=""frmStatusComment" & paryFriendStatus(5,i) & """>" & vbCr _
& "<input type=""hidden"" value=""" & cSession.MemberID & """ name=""hidMemberID" & paryFriendStatus(5,i) & """/>" & vbCr _
& "<table cellpadding=""4"" cellspacing=""0"" border=""0"" style=""width:350px"" id=""nocomment" & paryFriendStatus(5,i) & """>" & vbCr _
& "<tr style=""background-color:#EAF6F6"">" & vbCr _
& "<td align=""center""><input type=""text"" onclick=""ShowCommentBox(" & paryFriendStatus(5,i) & ")"" style=""padding-left:3px;height:20px;width:337px;border:1px #C6E7E7 solid;color:#808080"" class=""f5"" value=""Write a Comment!""/></td>" & vbCr _
& "</tr>" & vbCr _
& "</table>" & vbCr _
& "<table cellpadding=""0"" cellspacing=""0"" border=""0"" style=""width:350px;display:none"" id=""yescomment" & paryFriendStatus(5,i) & """>" & vbCr _
& "<tr style=""background-color:#EAF6F6"">" & vbCr _
& "<td style=""padding-top:4px;width:50px"" align=""center"" valign=""top"">" & GetMemberAvatar(cSession.MemberID,C_TINYAVATAR,False,False) & "</td>" & vbCr _
& "<td valign=""top"" style=""padding:4px 4px 0 0""><textarea id=""taStatusComments" & paryFriendStatus(5,i) & """ name=""taStatusComments" & paryFriendStatus(5,i) & """ onblur=""ShowCommentBox(" & paryFriendStatus(5,i) & ")"" style=""padding:3px;width:290px;border:1px #C6E7E7 solid"" class=""f5"" cols="""" rows=""""></textarea></td>" & vbCr _
& "</tr>" & vbCr _
& "<tr style=""background-color:#EAF6F6"">" & vbCr _
& "<td colspan=""2"" align=""right""><button type=""button"" class=""smlBtn"" name=""btnUpdate"" onclick=""return SaveStatusComments(" & paryFriendStatus(5,i) & ")""><span class=""sBtn""><span class=""sBtn"">Comment</span></span></button></td>" & vbCr _
& "</tr></table></form></td></tr></table></td></tr></table></td></tr>" & vbCr _
& "<tr id=""MemberStatus" & paryFriendStatus(5,i) & "spacer"" style=""height:1px"">" & vbCr _
& "<td style=""background-color:#E9E9E9""><img src=""/images/pixel.gif"" alt=""""/></td></tr>" & vbCr
NEXT
pstrOut = pstrOut & "</table>" & vbCr
'Response.Write pstrOut
'Response.End
END IF %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
<!--
var target = top.parent.document.getElementById('fmeFriendStatus');
var jstr = '';
<%=cUtil.ToJS(pstrOut,"jstr")%>
target.innerHTML = jstr;
//-->
</script>
</head>
<body>
</body>
</html>
此html页面在iframe中运行..大部分是经典ASP,因此是双“”
答案 0 :(得分:0)
您可以尝试使用'window.top ...'
而不是
'顶部....'
有些浏览器在DOM命名层次结构中非常严格。
答案 1 :(得分:0)
您可以在IE中使用top.document.all.elementName。有用。但这个问题在Firefox中无法解决。