好吧,这要死我了。我编写了一个 WordPress 插件,它向 TinyMCE 编辑器添加了一个自定义按钮,它工作得很好,除了由按钮触发的选项弹出窗口的加载方式与 WP 原生的类似弹出窗口不同......
具体来说,当您单击 WordPress 中 TinyMCE 工具栏上方的“添加媒体”按钮时,“添加媒体”窗口会以一个不错的厚框模式打开。它还加载到 iframe 中,因为获取输出的按钮 HTML 包装在带有 URL href 值的锚标记中:
<a href="http://.../wp-admin/media-upload.php?post_id=916&TB_iframe=1&width=640&height=354" class="thickbox add_media" id="content-add_media" title="Add Media" onclick="return false;">
但是当我的按钮的 HTML 得到输出时,锚标记的 href 值为 'javascript:;':
<a role="button" id="content_companyinfo" href="javascript:;" class="mceButton mceButtonEnabled mce_companyinfo" onmousedown="return false;" onclick="return false;" aria-labelledby="content_companyinfo_voice" title="Insert company info fields" tabindex="-1">
这是我的 TinyMCE 编辑器插件代码: http: //pastebin.com/kuQJRHJR
这是添加媒体按钮的 WP 核心 TinyMCE 编辑器插件:http: //core.trac.wordpress.org/browser/trunk/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js
TinyMCE addButton 函数不允许您设置 href 值,只能设置链接到使用 addCommand 创建的自定义命令函数的 cmd 值。
我尝试在 addButton 函数的设置中将类“thickbox”添加到我的按钮中,但这会产生奇怪的效果,即在我的正常弹出窗口后面创建一个厚框模式。
任何人都知道如何以正确的方式做到这一点?提前致谢!