【发布时间】:2010-09-29 18:08:33
【问题描述】:
我对 JavaScript 知之甚少,但尽管如此,我还是想在我的 wordpress 博客上拼凑一些东西。它不起作用,我不知道如何解决它,嘿,这就是 StackOverflow 的用途,对吧?
首先,错误信息是:
Error: element.dispatchEvent is not a function
Source File: http://.../wp-includes/js/prototype.js?ver=1.6
Line: 3936
它发生在页面加载时。我的页面加载处理程序是这样注册的:
Event.observe(window, 'load', show_dates_as_local_time);
如果我禁用其他一些插件,错误就会消失,而这(加上谷歌搜索)让我得出结论,这是原型和 jQuery (被其他一些插件使用)之间的冲突。
其次,我遵循 wordpress 推荐的做法,即使用 wp_enqeue_script 将我的 JavaScript 的依赖项添加到 Prototype 库,如下所示:
add_action( 'wp_print_scripts', 'depo_theme_add_javascript' );
function depo_theme_add_javascript() {
wp_enqueue_script('friendly_dates', 'javascript/friendly_dates.js', array('prototype'));
}
现在我也知道 jQuery 和 Prototype 之间存在一些潜在的冲突,这些冲突可以使用 jQuery noConflicts 方法解决。我试过从不同的地方打电话,但没有用。我不认为这是问题所在,因为 a) noConflict 函数仅与 $ 变量相关,这似乎不是问题,并且 b) 我会 希望 wordpress 帮我解决,因为它可以...
最后,使用 Venkman 调试器,我确定错误消息中引用的element 确实是HTMLDocument,但也缺少dispatchEvent。不知道这是怎么发生的,因为它是一个标准的 DOM 方法?
【问题讨论】:
标签: javascript jquery wordpress prototypejs