问题标签 [domcontentloaded]
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.
javascript - 正确的 JavaScript 等价于
什么是正确的 JavaScript 替换方式<body onload="init();">
,记住我们不再需要支持非常旧的浏览器。
就我而言,我想为所有标签添加一个 onClick 事件,并希望将 Javascript 与我的 HTML 页面分开。
从这个开始,但发现全局文档对象在内部不可用init()
,这似乎是一个时间问题。它在旧浏览器中运行得更好吗?
似乎是一种更现代的可靠方式,但所有现代浏览器都支持吗?
然后有人建议将 init() 放在页面底部,但这显然是回到让 Javascript 直接在 HTML 中。
有没有明确的方式我应该运行我的初始化代码?
javascript - DOMContentLoaded 事件中的代码不起作用
我用过
但似乎里面的代码document.addEventListener('DOMContentLoaded', function () {});
没有加载。
如果我从我的代码中删除它,它会突然起作用。
javascript - javascript DOMContentLoaded 事件监听器
我在 html 文档中有几个脚本,它们都有一个DOMContentLoaded事件侦听器。javaScript 会保持侦听器执行的相对顺序还是同步执行它们?
javascript - 在 jQuery 文档准备好之前在 Window 上强制执行 DOMContentLoaded 事件
假设我的页面某处有以下两个脚本标签:
有没有简单的方法来强制 DOMContentLoaded 事件在之前触发$().ready
?
这是我实际问题的简化示例。我面临的真正问题是 DOMContentLoaded 事件已注册在第三方库中,我将其包含在页面正文的底部,并且我有太多$().ready
调用来快速更改它们。从理论上讲,我可以更改window.addEventListener
为document.addEventListener
而不会产生任何问题,但是因为我在页面的头部包含了 jQuery,所以$().ready
之前的所有调用仍然触发,如此处document.addEventListener("DOMContentLoaded"...)
所述,并且我无法合理地移动 jQuery 或第三个的包含位置-派对图书馆。如果可能的话,我还想避免对第三方库进行更改。
angular - Angular2,模板仅在使用 ngAfterContentInit 或 ngAfterViewInit 函数时部分执行
在尝试访问文档的 DOM 时,我发现模板仅部分执行。如果我使用 asetTimeout
我可以解决这个问题,但是正确的方法是什么?
appService
正在提供模板将用于显示 html 的数据。模板:
不知何故*,对应的部分sessions
已填充但尚未current_tabs
填充的部分。两者和在调用之前都正确填写this.sessions
this.current_tabs
addListeners
*console.log(document.documentElement.innerHTML)
在setTimeout
(在 setTimeout 内执行时,两者都正确填充)
在代码中,我想要的是let draggables = document.getElementsByClassName('session');
正确检索,但我没有得到其中定义的那些,<section class="current_tabs">
因为它尚未填充
javascript - javascript对象原型调用
b2 和 b3 没有触发原型函数并且没有产生错误?如何以时尚的方式完成调用原型函数?
javascript - 在 Safari 10.1 中完成弹性框计算之前,DOMContentLoaded 和加载事件会触发吗?
在新发布的 Safari 10.1 (macOS Sierra) 中,浏览器似乎会在flexbox 完成计算宽度和高度之前触发加载事件(document.DOMContentLoaded 和 window.load)。
我有一个脚本可以计算元素的高度,以确定是否应将内容拆分为多个元素。
该解决方案呈现打印在死树上的发票,这就是为什么需要将内容拆分为单独的实际元素的原因。
一旦 flexbox 完成了它的魔力,我是否可以听其他任何事件来执行脚本?
该解决方案在 Chrome、Internet Explorer、Firefox、Opera 和旧版本的 Safari 上完美运行。我可以通过使用 100 毫秒的 setTimeout 使其在 Safari 10.1 中运行,但感觉有点 hacky。
javascript - 为什么 DOMContentLoaded 在 Safari 中的行为与在其他浏览器中的行为不同
为什么DOMContentLoaded
在 Safari (10.1) 中的行为与在其他浏览器 (Chrome/Firefox) 中的行为不同,最好的解决方法是什么?现在我使用 asetTimeout
作为一种解决方法,但这会导致其他浏览器中跳跃行为的不良影响......
javascript - 实时编辑器
我试图在页面加载时获取它,它会自动加载我在文本框中的代码,我在想也许使用加载的 Dom 内容?有什么建议么?
javascript - 是否可以使用 fetchUrl(·),但要在 html 加载后获取结果?
假设一个带有 url 的网页'http://example.com'
有 html 和 javascript:
假设我打电话给别处var x = UrlFetchApp.fetch('http://example.com').getContentText();
。然后一个得到x = 42
。但是,如果 Fetch 正确等待代码加载,则应该获得x = 2
.
是否可以告诉 fetch 等到 HTML 完全加载(例如,直到'DOMContentLoaded'
保持),然后再运行getContentText
?