社区
JavaScript
帖子详情
同一段js代码,前面加alert之后就能执行成功,如果去掉alert语句就执行失败,为什么?
time_is_life
2007-05-12 01:53:24
同一段设置层属性的js代码,
前面加alert之后就能执行成功,
如果去掉alert语句就没有反应,
我想可能是如果不加alert,层还没有加载完的原因吧.
可是现在我不想弹出alert,
该如何才能让这段js代码生效哪?
谢谢
...全文
1577
12
打赏
收藏
同一段js代码,前面加alert之后就能执行成功,如果去掉alert语句就执行失败,为什么?
同一段设置层属性的js代码, 前面加alert之后就能执行成功, 如果去掉alert语句就没有反应, 我想可能是如果不加alert,层还没有加载完的原因吧. 可是现在我不想弹出alert, 该如何才能让这段js代码生效哪? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
哪是因为没有加载完页面的原因
netty-all-4.1.23.Final.jar中文文档.zip
1、压缩文件中包含: 中文文档、jar包下载地址、Maven依赖、Gradle依赖、源
代码
下载地址。 2、使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 3、特殊说明: (1)本文档为人性化翻译,精心制作,请放心使用; (2)只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; (3)不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、
代码
等。 4、温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件。 5、本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册。
OKT507_修改默认界面显示_Linux_应用笔记_V1.0_20220627.pdf
OKT507_修改默认界面显示_Linux_应用笔记_V1.0_20220627
Linux_G2D_开发指南.pdf
Linux_G2D_开发指南
天气系统插件,所见即所得
天气系统插件,所见即所得
这是一个用Python开发的桌面版的跆拳道馆管理系统.zip
这是一个用Python开发的桌面版的跆拳道馆管理系统
JavaScript
87,997
社区成员
224,709
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章