同一段js代码,前面加alert之后就能执行成功,如果去掉alert语句就执行失败,为什么?

time_is_life 2007-05-12 01:53:24
同一段设置层属性的js代码,
前面加alert之后就能执行成功,
如果去掉alert语句就没有反应,
我想可能是如果不加alert,层还没有加载完的原因吧.
可是现在我不想弹出alert,
该如何才能让这段js代码生效哪?
谢谢
...全文
1624 12 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
哪是因为没有加载完页面的原因
内容概要:本文研究了基于多元宇宙优化算法(Multi-Verse Optimizer, MVO)在配电网与微电网中考虑价格型需求响应的优化调度问题。通过构建综合考虑电价引导下用户用电行为调整的数学模型,利用MVO算法对系统运行成本、负荷峰谷差、可再生能源消纳等多目标进行优化求解,有效提升了电网运行的经济性与稳定性。文中详细阐述了价格型需求响应机制的建模方法及其在负荷转移中的作用,并结合IEEE标准测试系统进行了仿真验证,结果表明所提方法能够显著改善负荷曲线,降低系统运行成本,提高能源利用效率。; 适合人群:具备一定电力系统基础知识和MATLAB编程能力,从事微电网优化、需求响应、智能配电网等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于含分布式能源的主动配电网与微电网协同优化调度;②实现基于电价信号的需求侧管理与负荷调控;③为电力系统经济调度、削峰填谷、提高新能源消纳能力提供算法支持与仿真验证方案; 阅读建议:本资源以Matlab代码实现为核心,建议读者结合算法原理与代码实现同步学习,重点关注目标函数构建、约束条件处理及MVO算法在电力系统优化中的具体应用方式,宜通过修改参数或拓展模型结构进行二次开发与创新研究。
内容概要:本文围绕基于多元宇宙算法(Multiverse Optimization Algorithm, MVO)的主动配电网故障定位方法展开研究,旨在通过智能优化算法提升配电网在复杂运行环境下的故障检测精度与效率。文中详细阐述了MVO算法的基本原理及其在故障定位模型中的适应性改进,结合主动配电网中分布式电源接入带来的双向潮流、运行方式多变等挑战,构建了以故障电流信息为基础的目标函数,并通过Matlab仿真平台对标准测试系统(如IEEE33节点系统)进行验证。研究结果表明,该方法能够有效克服传统方法在不确定性条件下的局限性,实现快速、准确的故障区段识别,具备较强的鲁棒性和工程应用潜力。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事智能电网、故障诊断或优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握多元宇宙算法在电力系统故障定位中的建模与实现方法;② 学习如何将智能优化算法应用于解决主动配电网中因源-荷不确定性导致的故障定位难题;③ 复现高水平论文成果,支撑科研项目、学位论文或学术发表。; 阅读建议:建议读者结合文中提供的Matlab代码进行仿真实验,深入理解算法参数设置与故障特征提取的关系,同时可尝试将其扩展至含更多分布式能源的复杂网络场景,进一步探索算法性能边界。

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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