javascript - WordPress 管理中没有 DOM

标签 javascript wordpress dom

我正确地将 JavaScript 文件插入到 WordPress 管理中心:

 wp_enqueue_script()

我知道脚本正在加载。我用 alert() 对其进行了测试。 然后我发现我无法访问 DOM。当我尝试时:

document.getElementsByTagName('body')[0].addEventListener('load', function() {});

此错误是:

Uncaught TypeError: Cannot call method 'addEventListener' of undefined

这是我第一次使用“设置 api”或将脚本插入 WordPress 管理中心。

最佳答案

您实际上希望将加载事件处理程序添加到window而不是body。一方面,在解析 BODY 标记之前,主体并不存在。如果您的脚本位于 HEAD 中,那么现在将任何内容附加到正文还为时过早。因此,如果您希望脚本在加载 DOM 之前不运行,则无法通过尝试向 DOM 中的对象添加事件处理程序来实现。

强烈建议使用 JS 框架来处理这个问题。添加您自己的函数以在页面加载时运行是您希望跨浏览器兼容且易于扩展的事情。主流的 JS 框架已经解决了这个问题,尝试手动解决几乎没有什么收获。

关于javascript - WordPress 管理中没有 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556394/

相关文章:

wordpress - Woocommerce 在结帐页面上删除 "Additional information"名称

html - 未应用 z-index 值时订单元素堆栈出现问题

PHP DOM 获取被选中的 <option> 标签

javascript - 在 super() 调用完成之前设置实例成员

javascript - 当我调用 onClick 函数时如何隐藏删除按钮

java - javascript emberjs 中的 List<Map<String, Object>> 中的 Json 值

css - wordpress 显示完整图像

wordpress - Laravel 和 Wordpress 在同一服务器/域上

javascript - js事件和DOM事件有什么区别?

javascript - 使用冒泡 (JavaScript/jQuery) 将事件处理程序绑定(bind)到特定元素