I have an asp.net page that loads some JavaScript scripts. One of those scripts loads some controls into the page appending them to the body in the window.onload
event.
我需要通过代码隐藏注入一个脚本来调用依赖于在window.onload
中创建的控件的脚本方法。这不起作用,因为我每次调用它总是太早,而且控件当时还没有创建。如果我在超链接中通过onclick
调用它,它会起作用,因为控件已经在onload
中创建了。
因此,
<script type="text/javascript" src="/Scripts/somefile.js"></script>
addEvent(window, "load", blabla);
-上面的js准备了一些在onload事件中附加到主体的控件
1.在后面的代码中,我尝试通过this.Page.ClientScript.RegisterStartupScript
或this.Page.ClientScript.RegisterClientScriptBlock
或任何调用上述. js方法的方式向页面编写脚本,这取决于onload
事件中加载的控件。
关于window.onload
事件后如何拨打电话,您有什么建议吗?
7条答案
按热度按时间ogsagwnx1#
创建一个函数数组:
zpf6vheq2#
您可以像注册启动脚本一样注册js文件:
q5lcpyga3#
您可以使用document.onreadystatechange事件来代替window.onload,如下所示。
tyky79it4#
如果你能使用jQuery
那么可以在DOM加载完成后调用脚本。
Introducing $(document).ready()
yeotifhr5#
使用Prototype JavaScript,您可以在DOM就绪时调用脚本(see the API here):
我建议将
onload
事件中加载的脚本移到dom:loaded
事件中。9rnv2umw6#
在
onLoad
中使用timeout
可计划稍后运行脚本。上面的例子迫使你猜测其他的
onLoad
脚本需要多长时间才能完成。为了安全起见,你必须使用一个长的延迟,但这可能是不可取的。但是如果你有一些状态,你可以检查以验证你所依赖的其他脚本是否已经运行,你可以使用一个短的延迟,让脚本不断重试,直到一切就绪:让您的脚本检查是否准备就绪,如果没有,则安排稍后重试
wbgh16ku7#
我尝试了几种方法都没有成功。我只是更改了业务需求,脚本由用户操作触发,而不是通过代码背后注入的脚本。
但是对于寻找答案的人来说,有几个可能的候选人可能会在你的情况下解决问题。