麻烦各位帮忙解决一下这个问题(有关用户控件)大牛们~!~!

无常名 2011-09-27 11:46:35
在网上下了一个QQ客服的东西,是一个ascx控件。内容如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="QQ.ascx.cs" Inherits="QQ" %>
<style>
#topbar{position:absolute;padding: 2px;width: 100px;z-index: 100;visibility:hidden;top:600px;font-size: 12px;}
#topbar A.qqa:link {COLOR: red; text-decoration: none}
#topbar A.qqa:visited {COLOR: red; text-decoration: none}
#topbar A.qqa:active {COLOR: red; text-decoration: none}
#topbar A.qqa:hover {COLOR: blue; text-decoration: none}
#topbar A.qqb:link {COLOR: black; text-decoration: none}
#topbar A.qqb:visited {COLOR: black; text-decoration: none}
#topbar A.qqb:active {COLOR: black; text-decoration: none}
#topbar A.qqb:hover {COLOR: blue; text-decoration: none}
</style>
<div id="topbar">
</div>
<span id="span_float_qq">
<script type="text/javascript" language="javascript">
var myQQNumAll=<%=QQList %>;//"297636198|1564220998"; //qq号,以|分割,注意与客服名称对应
var myQQSerAll=<%=QQJJ %>//"客服01号|客服02号"; //客服名称,以|分割,注意与QQ号对应

var myQQTitle="美居客服"; //弹出对话框标题
var myQQSkin="8"; //皮肤所在文件夹名
var myQQPath=""; //所在文件夹路径,前后带"/"号 默认为空即可
var persistclose=1; //设置为0或1,记录关闭状态 在网上下了一个QQ客服的东西,是一个ascx控件。内容如下: 当我将这个控件放入一个正常的页面的时候,结果页面原来正常的JS无法正常运行了
var startX = 20;
var startY = 200;
var verticalpos="fromtop"; //输入"fromtop"或"frombottom"
var online= new Array();
function $(id){return document.getElementById(id);}
function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function closebar(){
if (persistclose)
document.cookie="remainclosed=1"
$("topbar").style.visibility="hidden"
}
function staticbar(){
barheight=$("topbar").offsetHeight
var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
var d = document;
function ml(id){
var el=d.getElementById(id);
if (!persistclose || persistclose && get_cookie("remainclosed")=="")
el.style.visibility="visible"
if(d.layers)el.style=el;
el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
el.x = startX;
if (verticalpos=="fromtop")
el.y = startY;
else{
el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
el.y -= startY;
}
return el;
}
window.stayTopLeft=function(){
if (verticalpos=="fromtop"){
var pY = ns ? pageYOffset : iecompattest().scrollTop;
ftlObj.y += (pY + startY - ftlObj.y)/8;
}
else{
var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
ftlObj.y += (pY - startY - ftlObj.y)/8;
}
ftlObj.sP(ftlObj.x, ftlObj.y);
setTimeout("stayTopLeft()", 10);
}
ftlObj = ml("topbar");
stayTopLeft();
}
if (window.addEventListener)
window.addEventListener("load", staticbar, false)
else if (window.attachEvent)
window.attachEvent("onload", staticbar)
else if ($)
window.onload=staticbar
floatqq();
function floatqq(){
var myQQNumArray=myQQNumAll.split('|');
var myQQSerArray=myQQSerAll.split('|');
var myQQJsVal = "";
myQQJsVal+="<table border=\"0\" width=\"110\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"110\" onclick=\"if($('qqstab').style.display==\'none\'){$('qqstab').style.display=\'\'} else {$('qqstab').style.display=\'none\'}\"><img border=\"0\" src=\"" + myQQPath + "skin\/" + myQQSkin + "\/kefu_up.gif\" alt=\"点击收缩-展开\" \/><\/td><\/tr><tr id=\"qqstab\"><td valign=\"middle\" align=\"center\" background=\"" + myQQPath + "skin\/" + myQQSkin + "\/kefu_middle.gif\"><table border=\"0\" width=\"80\" cellSpacing=\"0\" cellPadding=\"0\"><tr><td width=\"80\" height=\"5\" border=\"0\" colspan=\"2\"><\/td><\/tr>";
for (loop=0; loop < myQQNumArray.length;loop++){
myQQJsVal+="<tr><td width=\"25\" height=\"22\" valign=\"middle\" align=\"center\"><img src=\"" + myQQPath + "images\/icon1.jpg\" border=\"0\" alt=\"" + myQQSerArray[loop] + "\"><\/td><td width=\"55\" height=\"22\" valign=\"middle\" align=\"left\"><a target=\"_blank\" href=\"tencent:\/\/message\/?uin=" + myQQNumArray[loop] + "&Site=" + myQQTitle + "&Menu=yes\" title=\"" + myQQTitle + "提醒您: 点击此图标联系" + myQQSerArray[loop] + " QQ:" + myQQNumArray[loop] + "\"><font style=\"font-size:12px;TEXT-DECORATION:none;color:#000000;\">" + myQQSerArray[loop] + "<\/font><\/a><\/td><\/tr>";}
myQQJsVal+="<\/table><\/td><\/tr><tr><td width=\"110\"><img border=\"0\" src=\"" + myQQPath + "skin\/" + myQQSkin + "\/kefu_down.gif\" alt=\"\" \/><\/td><\/tr><\/table>";
document.writeln(myQQJsVal);
}
</script>
</span>

<script type="text/javascript">$("topbar").innerHTML=$("span_float_qq").innerHTML;$("span_float_qq").innerHTML="";</script>


当我将这个控件放入一个正常的页面的时候,结果页面原来正常的JS无法正常运行了

<script type="text/javascript">
function sty()
{
$(function () {
$(".i_left_sub_nav li:not('.select')").hover(function () { $(this).addClass("hover"); $(this).siblings().removeClass("hover"); })
var i;
if ($(".i_right_content").innerHeight() <160)
{ i = 160; $(".i_right_content").css("height", $(".i_left_sub_nav").innerHeight()+35) }
else { i = $(".i_right_content").innerHeight() - 45; }
$(".i_left_sub_nav").css("height", i)
})
}
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
sty();
})
$(document).ready(function () {sty();})
</script>

$(".i_left_sub_nav li:not('.select')").hover(function () { $(this).addClass("hover"); $(this).siblings().removeClass("hover"); })
这一行提示 "null为空或不是对象"。

帮忙给解决一下啊。。分好说。。
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilooknow 2011-09-27
  • 打赏
  • 举报
回复
有两个可能:
1.window.onload=staticbar语句与你的冲突;
2.脚本中的某些对象不存在,在执行时出错!
beyond_me21 2011-09-27
  • 打赏
  • 举报
回复
你用的jQuery中的$和用户控件中的function $(id){return document.getElementById(id);}冲突了
把这句去了,然后把js语句有关的类似$("topbar")这样的换成document.getElementById("topbar")
Rock870210 2011-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zongbao516 的回复:]
试了试不行。。
[/Quote]
楼上说的是让你换行后调试,确定在哪一句出问题。只是这样的一点代码,别人也没法帮你。
用FireBug或者IE8调试先吧
无常名 2011-09-27
  • 打赏
  • 举报
回复
网页打开后,查看了一下源代码,JS中调用的标签都在页面中,名字也是一样的。
无常名 2011-09-27
  • 打赏
  • 举报
回复
试了试不行。。
丰云 2011-09-27
  • 打赏
  • 举报
回复
习惯不好,
按下面换行再调试下看看,
估计是.siblings()找不到了,
这个选择器要重写咯。。。。。

$(".i_left_sub_nav li:not('.select')").hover(function () {
$(this).addClass("hover");
$(this).siblings().removeClass("hover");
})

无常名 2011-09-27
  • 打赏
  • 举报
回复
非常感谢5楼,解决了~!~!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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