javascript - $(...).wikiEditor 不是函数
问题描述
我尝试按照MediaWiki.org上的教程使用用户脚本自定义工具栏;但是,有时当我从 加载它时common.js
,我会在控制台中收到此错误:
jQuery.Deferred exception: $(...).wikiEditor is not a function TypeError: $(...).wikiEditor is not a function
at quickMAR_add (https://en.moegirl.org/index.php?title=User:Leranjun/quickMAR.js&action=raw&ctype=text/javascript:52:19)
at https://en.moegirl.org/index.php?title=User:Leranjun/quickMAR.js&action=raw&ctype=text/javascript:60:12
at mightThrow (https://en.moegirl.org/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=1o54dq6:49:598)
at process (https://en.moegirl.org/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=1o54dq6:50:269) undefined
更奇怪的是,它有时有效,有时无效……如果我将代码复制/粘贴到控制台并手动执行,它总是有效。
源代码在这里,如果有必要的话。
解决方案
您需要等待工具栏准备好:
mw.hook( 'wikiEditor.toolbarReady' ).add( function ( $textarea ) {
$textarea.wikiEditor(...);
} );
您链接的文档页面上描述的方法不太优雅,但也可以使用。
推荐阅读
- c - 在通用位掩码宏中消除 -Wshift-count-overflow 警告
- lisp - 如何在 LISP 中不递归两次
- clang-tidy - clang-tidy -fix 不应用任何更改
- javascript - Javascript 和 SOAP (CUCM)
- javascript - 如何获取创建文档后添加的单击元素的 ID?
- python - 防止打印类数据的字符串变量
- windows - 如何触发 EXCEPTION_ILLEGAL_INSTRUCTION 异常来测试处理程序?
- ios - 如何在滚动时隐藏导航栏,除非在屏幕顶部
- android - 显示对话框时删除状态栏和导航栏覆盖
- ionic-framework - 从网站注册保存的登录信息自动登录到新下载的应用程序