我正在尝试将“onclick”对象添加到触发事件的单站点(即而不是多站点)WordPress 中的页面。代码是:
<a href="#" onclick="_speakpipe_open_widget(); return false;">Send a voice message</a>
当尝试保存代码时,WordPress 会删除 onclick 对象,留下:
<a href="#">Send a voice message</a>
另一个论坛上的用户建议 https://wordpress.org/support/topic/2-administrator-users-visual-editor-strips-onclick-on-1-of-them此限制仅适用于多站点非超级管理员用户。同样,这是一个只有一名管理员用户的单一站点。
据了解,WordPress从HTML中删除了“onclick”,以防止恶意代码。不过,有人知道如何解决这个问题吗?
Thanks.
看来,在当前的 Wordpress(我使用的是 4.9.4)中,TinyMCE 直接在编辑器屏幕上进行过滤,而不是在提交表单时进行。 allowedtags 和 allowedposttags 似乎并不重要,所以上面的解决方案并不能解决我的问题。
我开发的方法使用tiny_mce_before_init
过滤器以更改 TinyMCE 中允许的标签。诀窍是添加extended_valid_elements
设置允许的元素的更新版本a
.
首先,在页面中查看http://archive.tinymce.com/wiki.php/Configuration3x:valid_elements http://archive.tinymce.com/wiki.php/Configuration3x:valid_elements查找当前值a
,现在是
a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]
并添加到最后onclick
属性:
a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick]
然后在过滤器函数中使用它,如下所示:
function allow_button_onclick_mce($settings) {
$settings['extended_valid_elements'] = "a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick]";
return $settings;
}
add_filter('tiny_mce_before_init', 'allow_button_onclick_mce');
你安装在你的functions.php
Wordpress 中的文件。您可以通过切换编辑页面上的文本和视觉视图来查看它的运行情况。如果没有扩展列表,onclick 就会消失。有了它,它就留下来了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)