社区
JavaScript
帖子详情
同一段js代码,前面加alert之后就能执行成功,如果去掉alert语句就执行失败,为什么?
time_is_life
2007-05-12 01:53:24
同一段设置层属性的js代码,
前面加alert之后就能执行成功,
如果去掉alert语句就没有反应,
我想可能是如果不加alert,层还没有加载完的原因吧.
可是现在我不想弹出alert,
该如何才能让这段js代码生效哪?
谢谢
...全文
1610
12
打赏
收藏
同一段js代码,前面加alert之后就能执行成功,如果去掉alert语句就执行失败,为什么?
同一段设置层属性的js代码, 前面加alert之后就能执行成功, 如果去掉alert语句就没有反应, 我想可能是如果不加alert,层还没有加载完的原因吧. 可是现在我不想弹出alert, 该如何才能让这段js代码生效哪? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
time_is_life
2007-05-13
打赏
举报
回复
好用了,谢谢
yixianggao(你我他,三人行必有我师焉!) ( ) 信誉:100 Blog 加为好友
yixianggao
2007-05-12
打赏
举报
回复
只能用延时了,没找到有什么事件可用!
写了个例子,如果不调用延时函数,而是直接执行 resizeDiv 里的两句话就会遮住右侧滚动条,
例子中延时 100 毫秒后能自动调整了,如 LZ 所愿!
仅仅是实现了功能,但原理还不十分清楚,暂且解释为加载延时吧,时长只能凭经验估计了,
因为找不到事件!
大家都来说说!
代码如下,LZ 更具自己的情况改改吧:
<body>
<div id="divForItemContent" style="filter:alpha(opacity=50);width:500px; height: 100px; font:20;z-index:1000;background-color:#FF0000; position:absolute; left: 11px; top: 85px;"></div>
<div id="divItemContent" style="overflow: auto; width:500px; height: 100px; font:20;z-index:999;background-color:#0000ff;position:absolute; left: 11px; top: 85px;">
</div>
<script type="text/javascript">
<!--
divItemContent.innerHTML = "<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />";
// 延时时段,单位 毫秒,1秒=1000毫秒。
var delayInterval = 100;
window.setTimeout(resizeDiv, delayInterval);
function resizeDiv()
{
divForItemContent.style.width = divItemContent.clientWidth;
divForItemContent.style.height = divItemContent.clientHeight;
}
//-->
</script>
</body>
yixianggao
2007-05-12
打赏
举报
回复
嗯,够了,不过俺没这么做过,只能试试看!
基本思路就是,用延时函数处理,等内容加载完毕后再设置宽、高,
可是问题就是从何得知内容已加载完毕?!
先顶上去,俺去试验一下!
time_is_life
2007-05-12
打赏
举报
回复
用divForItemContent盖住divItemContent
time_is_life
2007-05-12
打赏
举报
回复
打错了,
divForContent应该是divForItemContent
共有两个div: divItemContent 和 divForItemContent .
所以这句应该是:
<div id="divForItemContent" style="filter:alpha(opacity=0);width:503px;font:20;z-index:1000;background-color:#FF0000;position:absolute; left: 11px; top: 85px; height: 87px;"></div>
---------------------------------------------------------------------------
这句话:
document.getElementById("divItemContent").innerHTML = document.getElementById("<%= txtContent.ClientID %>").value;
是把服务器端的TextBox的内容复制到客户端的div中.
要复制的内容很多,具体的内容是Html格式的内容,可能包含文本,图片,链接等.
最长可能达到几万字.
Html的代码太长,而且与其他页面关联.不知道上述信息是否足够,谢谢
yixianggao
2007-05-12
打赏
举报
回复
divForContent —— html
divItemContent —— JS
divForItemContent —— JS
怎么是三个 div ?请把 html 代码贴完全!
document.getElementById("divItemContent").innerHTML = document.getElementById("<%= txtContent.ClientID %>").value;
document.getElementById("<%= txtContent.ClientID %>").value; ——内容很多么?具体内容是什么?
似乎就是加载的问题!
time_is_life
2007-05-12
打赏
举报
回复
to yixianggao(你我他,三人行必有我师焉!)
以下是代码,代码的功能是用一个div将另外一个div盖住,但是当被盖住的div有滚动条时,不能把滚动条也盖住。
这里的代码包含两种实现方式:
第一种是通过Ajax的ScriptManager.RegisterStartUpScript来调用,这种调用能够使div可见,但是把滚动条也盖住了,说明代码执行时滚动条还没有出现。
第二种是用ajax的EndRequest来调用,也是一样,能够使div可见,但是把滚动条也盖住了,说明代码执行时滚动条还没有出现。
在第二种方法中,如果在调整div大小前调用一下alert,执行的时候点击完alert确定按钮之后,滚动条就不被盖住了,说明执行有效了。
现在不想出现alert,该如何才能实现这个功能哪?
谢谢
-------------------------
<div id="divForContent" style="filter:alpha(opacity=0);width:503px;font:20;z-index:1000;background-color:#FF0000;position:absolute; left: 11px; top: 85px; height: 87px;"></div>
<script type="text/javascript">
//这里是ajax的EndRequest事件
function EndRequest (sender, args)
{
if( postBackElement.id == document.getElementById("<%= tvItems.ClientID %>").id )
{
//fill the item content back into the divContent from server-side control.
document.getElementById("divItemContent").innerHTML = document.getElementById("<%= txtContent.ClientID %>").value;
divForItemContent.style.display = "block";//这句执行成功了
// alert(divItemContent.clientWidth);
divForItemContent.style.width = divItemContent.clientWidth;
divForItemContent.style.height = divItemContent.clientHeight;
}
}
//自己写的函数
function ShowDivForContent()
{
divForItemContent.style.display = "block";
divItemContent.style.borderColor = "#000000";
divForItemContent.style.width = divItemContent.clientWidth;
divForItemContent.style.height = divItemContent.clientHeight;
}
</script>
<script runat="server">
ScriptManager.RegisterStartupScript(UpdatePanel4, this.GetType(), DateTime.Now.ToString(), "ShowDivForContent();", true);
</script>
yixianggao
2007-05-12
打赏
举报
回复
ClientScriptManager.RegisterStartupScript Method (Type, String, String)
The script block added by the RegisterStartupScript method executes when the page finishes loading but before the page's OnLoad event is raised.
看来不是位置的问题,是不是用了 iframe 或 frame 什么的?
LZ 到底想实现什么效果,并且把脚本代码和 html 页面代码贴出来看看!
大家帮你分析分析!
time_is_life
2007-05-12
打赏
举报
回复
to
yixianggao(你我他,三人行必有我师焉!)
我是在服务器端用ScriptManager.RegisterStartUpScript注册的.
可是不用alert就不行,
怎么样在服务器端把js注册到你说的位置阿
yixianggao
2007-05-12
打赏
举报
回复
如果是嵌入页面的脚本,有两种办法,
1 加 defer 属性,即:<script type="text/javascript" defer>...
2 调整代码位置,放到 </body> 之前,即 ...</script></body>
LZ 自选!
dh20156
2007-05-12
打赏
举报
回复
"我想可能是如果不加alert,层还没有加载完的原因吧."
既然你知道原因,那就按这个去解决问题啊,让脚本加载完再执行你要的事件!
如果是XMLHTTP,建议使用异步加载方式进行处理!
rjzou2006
2007-05-12
打赏
举报
回复
哪是因为没有加载完页面的原因
【IEEE33节点】基于粒子群优化算法的分布式电源选址与定容【多目标优化】附Matlab
代码
.docx
【IEEE33节点】基于粒子群优化算法的分布式电源选址与定容【多目标优化】附Matlab
代码
.docx
CSS3动画效果综合练习与实战项目_包含CSS3关键帧动画过渡效果3D变换响应式动画设计SVG动画
加
载动画按钮交互特效页面滚动动画文字动画图像画廊特效菜单导航动.zip
CSS3动画效果综合练习与实战项目_包含CSS3关键帧动画过渡效果3D变换响应式动画设计SVG动画
加
载动画按钮交互特效页面滚动动画文字动画图像画廊特效菜单导航动.zip
box-shadow结合CSS3动画实践项目_深入探索CSS3中box-shadow属性与animationtransitionkeyframes等动画技术融合应用通过大量实.zip
box-shadow结合CSS3动画实践项目_深入探索CSS3中box-shadow属性与animationtransitionkeyframes等动画技术融合应用通过大量实.zip
CSS3动画效果之野人快跑项目_这是一个专注于利用CSS3动画技术实现野人角色奔跑动作的网页前端开发示例项目通过关键帧动画过渡效果和变形属性生动模拟野人在丛林或原始环境中快速.zip
CSS3动画效果之野人快跑项目_这是一个专注于利用CSS3动画技术实现野人角色奔跑动作的网页前端开发示例项目通过关键帧动画过渡效果和变形属性生动模拟野人在丛林或原始环境中快速.zip
一款windows上使用的定时播放音乐软件
一款windows上使用的定时播放音乐软件
JavaScript
87,996
社区成员
224,693
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章