问题标签 [onload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
207 浏览

browser - 找不到合适的文档类型,似乎只能在怪癖模式下工作

出于某种原因,我的网页在没有 doctype 的情况下似乎可以正常工作,但如果我完整指定任何内容,则不会。

我已经通过各种不同的模板没有任何成功,即代码验证器然后不喜欢我的代码和/或它不起作用。

唯一的“我逃脱了”是下面的第一行,但即使那样我也无法指定任何细节,即它只是通常的 doctype 声明的开始。

该页面是Drop down Stackoverflow question的结果。

此外(以及为什么我要指定类型的原因,因为这可能会导致问题)该页面仅在 IE 中完全有效。它只在 Chrome 中加载第一个下拉菜单,在 Firefox 中不加载任何内容。

我很欣赏上面不是太清楚,但代码很短,所以我希望如果指向正确的方向,我可以自己完成它和/或更好地描述其他问题。

0 投票
7 回答
294518 浏览

javascript - iFrame src 更改事件检测?

假设我无法控制 iframe 中的内容,有什么方法可以通过父页面检测到其中的 src 更改?也许某种onload?

如果 iframe src 与以前相同,我最后的手段是进行 1 秒的间隔测试,但是这样做会很糟糕。

如果有帮助,我正在使用 jQuery 库。

0 投票
1 回答
1064 浏览

javascript - ie7重新加载后onclick事件不起作用

我正在使用 Javascript 来动态创建我的部分页面内容。从 window.onload 事件调用生成一组 img 标记的例程。这些 img 标签被分配了属性,包括 onclick 事件。img 标签承载缩略图图像,单击时会更改主视图 div 中图像的 src 属性。

在 FF 3.5 中一切正常。我可以重新加载页面,动态生成的 onclick 事件继续按预期触发。在 IE7 中一切正常,直到我重新加载页面。此时,硬编码到 xhtml 部分的事件继续按预期工作,并且动态生成的 img 标签显示在页面上,但它们的 onclick 事件无法工作。

如何让 IE7 在重新加载时实现动态生成的点击事件?

0 投票
4 回答
118212 浏览

jsf - 在页面加载时调用 JSF 托管 bean 操作

有没有办法在加载页面时执行 JSF 托管 bean 操作?

如果这是相关的,我目前正在使用 JSF 1.2。

0 投票
5 回答
26996 浏览

dom - window.onload 似乎在加载 DOM 之前触发(JavaScript)

我在window.onloaddocument.onload事件方面遇到了麻烦。我读到的所有内容都告诉我,在 DOM 完全加载其所有资源之前,这些不会触发,这对我来说似乎没有发生:

我在 Chrome 4.1.249.1036 (41514) 和 IE 8.0.7600.16385 中尝试了以下简单页面,结果相同:都显示消息“失败!”,表示myParagraph未加载(因此 DOM 似乎不完整)。

我在外部 .js 文件中使用了比这更复杂的脚本,但这说明了问题。我可以通过window.onload将计时器设置为运行半秒来使其工作doThis(),但这似乎是一个不雅的解决方案,并且没有回答为什么window.onload似乎没有按照每个人所说的那样做的问题。另一种解决方案是设置一个计时器来检查 DOM 是否已加载,如果没有,它将在半秒后调用自身(因此它将继续检查直到 DOM 加载完毕),但这对我来说似乎过于复杂。

有没有更合适的事件可以使用?

0 投票
2 回答
4428 浏览

javascript - scrollTo 滚动到页面顶部

我有以下 Javascript 代码。

加载页面时,它会滚动到正确的位置。当我单击链接运行该功能时,页面滚动到页面顶部。

我该如何解决?

0 投票
5 回答
22165 浏览

data-binding - MVVM 在 ViewModel 构建期间或之后加载数据?

我的一般问题是如标题所述,最好在 ViewModel 构建期间或之后通过一些 Loaded 事件处理加载数据?

我猜答案是在通过一些 Loaded 事件处理构建之后,但我想知道 ViewModel 和 View 之间如何最干净地协调?

以下是有关我的情况和我要解决的特定问题的更多详细信息:

我正在使用 MVVM Light 框架以及 Unity for DI。我有一些嵌套视图,每个都绑定到相应的 ViewModel。ViewModel 通过 Laurent Bugnion 放入 MVVM Light 的 ViewModelLocator 理念绑定到每个 View 的根控件 DataContext。这允许通过静态资源查找 ViewModel 并通过依赖注入框架(在本例中为 Unity)控制 ViewModel 的生命周期。它还允许 Expression Blend 查看与 ViewModel 相关的所有内容以及如何绑定它们。

所以无论如何,我有一个父视图,它有一个 ComboBox 数据绑定到其 ViewModel 中的 ObservableCollection。ComboBox 的 SelectedItem 也绑定(双向)到 ViewModel 上的一个属性。当 ComboBox 的选择发生变化时,这是为了触发其他视图和子视图中的更新。目前,我正在通过 MVVM Light 中的消息系统来完成此操作。当您在 ComboBox 中选择不同的项目时,这一切都很好,并且符合预期。

但是,ViewModel 在构建期间通过一系列初始化方法调用获取其数据。如果我想控制 ComboBox 的初始 SelectedItem 是什么,这似乎只是一个问题。使用 MVVM Light 的消息传递系统,我目前已将其设置为 ViewModel 的 SelectedItem 属性的设置器是广播更新的设置器,而其他感兴趣的 ViewModels 在其构造函数中注册消息。看来我目前正在尝试在构建时通过 ViewModel 设置 SelectedItem,这还不允许构建和注册子 ViewModel。

在 ViewModel 中协调 SelectedItem 的数据加载和初始设置的最简洁方法是什么?我真的很想坚持尽可能少地在 View 的代码隐藏中添加合理的内容。我想我只需要一种方法让 ViewModel 知道什么时候加载了东西,然后它可以继续加载数据并完成设置阶段。

提前感谢您的回复。

0 投票
1 回答
5782 浏览

javascript - How to get scrollTop of page just after page onload event?

I know how to get the scrollTop of a page, I use this simple JS function (code copied around):

This works and my problem is the following: I tried to add it in the page onload event

On page load I get ZERO (which make sense), but the problem is that I get ZERO even if I scroll the page and then reload it without touching the scrollbar.

It seems like the browser does:

  1. loads page
  2. calls my GetScrolledTop() (so obviously shows ZERO)
  3. then scrolls the page to where it was before.

Do you know how to get the scolledTop after the step 3? I mean how to get the scrolledTop AFTER the browser scrolled the page? (maybe without using a timer)

0 投票
3 回答
779 浏览

javascript - Firefox 3.6.x 不会触发我的 onload 事件

我有一个 Firefox 3.6.2 问题(3.5.x 工作得很好)。

这是代码:

Firefox 3.6.2 不再触发我的 onload 事件,有什么想法吗?

0 投票
1 回答
165 浏览

javascript - 使用小书签跟踪包裹

我正在尝试编写一个小书签来跟踪邮件中的包裹。首先它检查跟踪页面是否打开,如果没有,它会在新选项卡中打开它,然后将表单的值设置为跟踪号。最后,它提交表单。到目前为止,我无法做的是在小书签打开一个新选项卡的情况下设置表单的值。

这是我所拥有的:

javascript: (function(){
var trackingNumber = "/ *tracking number*/";
var a = document.forms.trackingForm;
if (' http://fedex.com/Tracking ' == document.location) {
trackingForm.trackNbrs.value = trackingNumber;
document.forms.trackingForm.submit();
}
else {
window.open(' http://fedex.com/Tracking ');
this.window.onload = function(){ //好像是这个问题
trackingForm.trackNbrs.value = trackingNumber;
onload(document.forms.trackingForm.submit());
}
}
})();

有任何想法吗?