我有一个带有DOMContentLoaded事件处理程序的脚本 -
document.addEventListener('DOMContentLoaded', function() {
console.log('Hi');
});
Run Code Online (Sandbox Code Playgroud)
我正异步加载 -
<script async src=script.js></script>
Run Code Online (Sandbox Code Playgroud)
但是,永远不会调用事件处理程序.如果我同步加载它 -
<script src=script.js></script>
Run Code Online (Sandbox Code Playgroud)
它工作正常.
(即使我将DOMContentLoaded事件更改为load事件,也从未调用过.)
是什么赋予了?无论浏览器如何加载脚本,都应该注册事件处理程序,不是吗?
编辑:它无法在Chrome 18.0.1025.11测试工作,但,有DOMContentLoaded,它不会在Firefox 11 Beta版(但load事实并非如此).去搞清楚.
哦伟大的JAVASCRIPT和DOM,祈祷显示我的方式的错误!
我一直在寻找一个简单但不是微不足道的问题的答案:onload用jqLite在Angular中捕获图像' 事件的正确方法是什么?我发现了这个问题,但我想要一些指令解决方案.
正如我所说,我不接受这个:
.controller("MyCtrl", function($scope){
// ...
img.onload = function () {
// ...
}
Run Code Online (Sandbox Code Playgroud)
因为它在控制器中,而不是在指令中.
我有一个iFrame,我想在加载后发送JavaScript命令.我当前的代码如下所示:
<iframe src="http://www.test.tld/" onload="__doPostBack('ctl00$ctl00$bLogout','')">
Run Code Online (Sandbox Code Playgroud)
但是使用此代码,命令不会执行.我必须改变什么来使它工作?只支持Chrome和Firefox.
在JavaScript中,当我想在页面加载时运行一次脚本时,我应该使用window.onload还是只编写脚本?
例如,如果我想要一个弹出窗口,我应该写(直接在<script>标签内):
alert("hello!");
Run Code Online (Sandbox Code Playgroud)
要么:
window.onload = function() {
alert("hello!");
}
Run Code Online (Sandbox Code Playgroud)
两者似乎都在加载页面后运行.有什么区别?
我的通用问题是标题所述,是否最好在ViewModel构造期间或之后通过某些Loaded事件处理加载数据?
我猜测答案是在构建之后通过一些Loaded事件处理,但我想知道ViewModel和View之间如何最清晰地协调?
这里有关于我的情况以及我想要解决的特定问题的更多细节:
我正在使用MVVM Light框架以及Unity for DI.我有一些嵌套的视图,每个视图都绑定到相应的ViewModel.ViewModel通过Laurent Bugnion放入MVVM Light的ViewModelLocator理念绑定到每个View的根控件DataContext.这允许通过静态资源查找ViewModels并通过依赖注入框架控制ViewModels的生命周期,在本例中为Unity.它还允许Expression Blend查看与ViewModel相关的所有内容以及如何绑定它们.
所以无论如何,我有一个父View,它有一个ComboBox数据绑定到其ViewModel中的ObservableCollection.ComboBox的SelectedItem也绑定(双向)到ViewModel上的属性.当ComboBox的选择发生变化时,这将触发其他视图和子视图中的更新.目前我正在通过MVVM Light中的Messaging系统实现这一目标.当您在ComboBox中选择不同的项目时,这一切都非常有效.
但是,ViewModel通过一系列初始化方法调用在构造期间获取其数据.如果我想控制ComboBox的初始SelectedItem是什么,这似乎只是一个问题.使用MVVM Light的消息传递系统,我目前已经设置了ViewModel的SelectedItem属性的setter是广播更新的设置者,另一个感兴趣的ViewModels注册用于它们的构造函数中的消息.看来我正在尝试在构造时通过ViewModel设置SelectedItem,这样就不允许构建子ViewModel并进行注册.
在ViewModel中协调数据加载和SelectedItem初始设置的最简洁方法是什么?我真的很想坚持在View的代码隐藏中尽可能少地使用合理的代码.我想我只需要一种方法让ViewModel知道什么时候有东西已经加载,然后它可以继续加载数据并完成设置阶段.
在此先感谢您的回复.
我有一个有两列的网站.我希望在使用jQuery时都有相同的高度.
我正试图获得徽标列高度.我有:
$(document).ready(function() {
alert($('#logo').height());
});?
Run Code Online (Sandbox Code Playgroud)
它不起作用.所以我改成了:
window.onload = function(){
alert($('#logo').height());
}
Run Code Online (Sandbox Code Playgroud)
它正在发挥作用.这里发生了什么?
我想做的就是在页面加载时淡化我的徽标.我今天是jQuery的新手,我无法在负载上设法淡出请帮忙.对不起,如果这个问题已经得到解答,我已经看了一眼,并尝试针对不同的问题调整其他答案,但似乎没有任何工作,它开始让我感到沮丧.
谢谢.
码:
<script type="text/javascript">
$(function () {
.load(function () {
// set the image hidden by default
$('#logo').hide();.fadeIn(3000);
}}
</script>
<link rel="stylesheet" href="challenge.css"/>
<title>Acme Widgets</title>
</head>
<body>
<div id="wrapper">
<div id="header">
<img id="logo" src="logo-smaller.jpg" />
</div>
<div id="nav">
navigation
</div>
<div id="leftCol">
left col
</div>
<div id="rightCol">
<div id="header2">
header 2
</div>
<div id="centreCol">
body text
</div>
<div id="rightCol2">
right col
</div>
</div>
<div id="footer">
footer
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 在window.onload上使用Jquery ready()函数有什么好处吗?
// Jquery ready
$(document).ready(function() {
});
// window.onload
window.onload = function () {
}
Run Code Online (Sandbox Code Playgroud) 我已经尝试了所有生命周期钩子但无法完成所需的结果.我需要的结果是在加载这些元素(组件)中的每一个之后触发一个函数,该函数初始化用于单个页面上的不同元素的许多jquery插件.
所以我们说你有这种结构.
主页滑块小部件产品旋转器..等等
这些元素中的每一个都有自己的组件,并且都是主页父组件的子组件.
我需要的是知道所有子组件和父组件何时被加载,所以我触发一个jquery函数来初始化页面上的每个插件.
我熟悉它的典型用法onload,如下所示:
<body onload="alert('Hello, World!');">
...
</body>
Run Code Online (Sandbox Code Playgroud)
触发加载事件的所有html元素是什么?(从而执行onload属性中提供的javascript)
例如,img是一个这样的标记,它将在加载onload时执行属性中提供的javascript some.png:
<img onload="someImgLoaded()" src="some.png" />
Run Code Online (Sandbox Code Playgroud) onload ×10
javascript ×6
jquery ×4
onload-event ×2
angular ×1
angularjs ×1
components ×1
constructor ×1
data-binding ×1
document ×1
dom ×1
dom-events ×1
fadein ×1
html ×1
html5 ×1
iframe ×1
jqlite ×1
mvvm-light ×1
onerror ×1
ready ×1
viewmodel ×1
window ×1