我正确地将 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/