问题标签 [domready]

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 投票
2 回答
171 浏览

javascript - 是否可以在 Javascript 中触发文档加载事件之前响应添加到 DOM 的元素?

我正在尝试制作一个 javascript 嵌入,它将在页面加载时对其进行操作。该脚本在标题中,我希望它能够在 document.querySelector 找到元素后立即对其进行操作。换句话说,它需要在 document.readyState 处于“交互”状态时,在“加载”之前对 DOM 中的变化做出反应。我不能使用超时/间隔,因为文档加载会阻塞,直到整个文档被加载,所以如果我设置 0ms 的超时,它不会执行,直到 document.readyState 被“加载”。

当元素添加到 DOM 时是否有任何事件触发?我尝试了 DOMNodeInserted,但它似乎只在加载文档后异步添加的元素触发。

最后,这必须仅使用 javascript 来完成;我无权访问 html 或服务器。嵌入正在其他人的网站上。

0 投票
3 回答
83 浏览

javascript - 在 DOMReady 之前调用 jQuery 方法是否安全?

我们有一个项目,其中 jQuery 被连接到我们的主要 javascript 应用程序 JS 文件中,我想知道在 DOMReady 之前调用 jQuery 方法是否安全?

我看到许多网站建议在 DOMReady之后触发您的 jQuery javascript ,例如:

但是,这似乎会延迟脚本执行,有时会导致其他应用程序功能出现问题。由于 jQuery 已经包含在同一个 JS 文件中(在顶部),那么在不等待 DOMReady 的情况下触发 jQuery 方法是否不安全?

在我的测试中,它运行良好,但我只是想确保我不会被浏览器随机性所困扰。我假设运行 jQuery 方法是可以的,只要它低于 jQuery 定义,并且只要它不是与 DOM 相关的活动。感谢您的任何意见。

0 投票
1 回答
120 浏览

javascript - Search engine crawler behavior regarding DOM ready state, page loaded state and script execution state

I have a Website with heavy jQuery action. In order to create a less chaotic page load I hide() the content container on initial page load and show() it when the page has loaded: $(window).load(function() { //show content...

This is the sequence right now, which works well in a browser for human eyes:

  1. hide content on initial page load.
  2. wait until page has fully loaded.
  3. show content.
  4. do jquery action.

But I wonder how this works for crawlers. Does the crawler wait for "page->loaded" and "scripts->finished"? If not, the crawl result may become messy..

0 投票
2 回答
685 浏览

jquery - 使用jquery获取角度js ng-repeat li列出项目的长度

我正在ul-li使用 angular 制作列表ng-repeat。但是DOMReady我想要生成的列表的总长度,并且我想li在“悬停”或“点击”上运行一个事件。但是我得到的长度是 0 并且没有事件被触发。获得它的最佳方法是什么?提前致谢!

我需要在悬停时触发的事件li

你看,我不能为此使用角度

0 投票
2 回答
799 浏览

jquery - 谷歌地图信息气泡动态内容未在第一次标记点击时加载

我正在尝试在 google maps infobubble中添加动态内容:
-第一个标记单击一个空的 infobubble 出现
-在第二次单击标记时加载正确的内容

根据这个答案,我正在使用domready先前定义的 infobubble 对象上的事件来启动加载动态内容的函数。
...尽管该答案中的 JS 小提琴具有误导性,因为“动态”内容实际上是在domready使用调用content选项之前加载的new InfoBubble()

我在控制台中收到了所有正确的信号,表明该domready功能正在完成,并且在第一次标记点击时正确找到了内容。

试过:

  • 查看infobubble.js 代码并将 console.logs 放在第 1231 行的任一侧:
    google.maps.event.trigger(this, 'domready');
    结果表明 domready 确实在动态函数开始之前被触发。

  • 使用 infobubbledisableAnimation: true选项禁用动画 - 认为在调用 domready 后可能会减慢 infobubble 加载 - 但它没有用

  • 最多增加setTimeout()3 秒,但这似乎无济于事……无论如何,这将是一个糟糕的 hack。

如何在第一次单击标记时加载动态内容?

JS小提琴在这里

注意:
- 对于 js fiddle 示例,我正在使用$.get()调用 - 因为在我的应用程序中,我使用 mustache 将模板加载到 infobubble
- 正在加载的示例内容与调用无关$.get()(是的,我可以实现没有$.get()电话也一样)但我只是想对我自己的应用程序使用类似的代码布局+时间

0 投票
2 回答
194 浏览

javascript - domready、onload、body、head 的方式是什么?

我对 domready、onload、body、head 有疑问。当我将一些 js 链接到 head 时,它不起作用。否则,它在体内工作。

我在 JSFIDDLE 中注意到,它提到了。

这和区别的意义是什么?

你能解释一下吗?

0 投票
1 回答
285 浏览

javascript - 当页面包含 iframe 时,Wicket 无法重新加载页面 onSubmit

当使用 Wicket 按钮提交表单后响应包含 iframe 时,页面无法完全重新加载。问题是 wicket 尝试在 window.domready 上绑定一些事件侦听器,但它失败并说“无法为元素“topRightItemTypeChoice7”上的事件“更改”绑定侦听器,因为该元素不在 DOM 中”

我已经使用 httpfox 插件分析了响应文本,并且响应中存在具有此 id 的组件。

下面是 Wicket 的 JS 片段,它试图绑定事件

响应中的 html 组件

当我从页面中删除 iframe 时,一切正常。知道 iframe 对 window.domready 有什么不同吗?

0 投票
2 回答
742 浏览

javascript - 文档就绪功能 - 不先加载代码

我有一个适用于正文的功能,onload=""但我需要在页面的其他元素之前加载它,并且我试图在标题中添加文档就绪功能,但它似乎不起作用。

所以起作用的onload功能就是下面这个:

0 投票
2 回答
49811 浏览

reactjs - React 中的 dom 就绪事件

我有一些组件如下:

Wrapper:包装Loader和Page

加载器:一些动画

页面:页面内容

像这样的代码:

我想在 DOM 完全加载后隐藏加载器并显示页面组件。

我应该如何在React中编写 dom 就绪事件?

像 jQuery:$(window).on('ready')

0 投票
1 回答
1944 浏览

javascript - Jquery set the initial value

Hope you can help me. How do I set the initial value of an element in Jquery/Javascript?

To explain my problem I've the following snippet. My snippet works as I want, but only after "onclick". When I load the page, it won't get the right value. In this case I want want to when I click "show Monthly" to appear 80€ and when I click show Annual to appear 800€. But it only works after I click, not when I load the page.

Thanks