如何在WordPress HTML中包含“onclick”

时间:2015-03-11 17:04:11

标签: javascript html wordpress onclick

我在触发事件的WordPress网站上使用“onclick”。代码是:

<a onclick="$zoho.salesiq.floatwindow.visible('show');">
[tt_vector_box icon="fa-comments" size="fa-4x" color="#FF8300" link_to_page="" target="" description=""]
<h3>Customer Service</h3>
Do you have any questions?
Talk to our Live Help online service
[/tt_vector_box]
</a>

当试图保存代码时,WordPress会剥离onclick对象:

<a>
[tt_vector_box icon="fa-comments" size="fa-4x" color="#FF8300" link_to_page="" target="" description=""]
<h3>Customer Service</h3>
Do you have any questions?
Talk to our Live Help online service
[/tt_vector_box]
</a>

我该如何解决这个问题?

PS。如果我必须编辑或添加代码,请告诉我在哪里添加或编辑它以及文件可能在哪里?

感谢

1 个答案:

答案 0 :(得分:0)

使用wordprtess shortcode在保存的帖子中实际包含js代码,或者如提到的那样,使用外部js文件并使用此外部文件中的代码定位元素(使用某个ID)。

要使用短代码,请执行以下操作:

// [onlick text="foo"]
function myonlick_func( $atts ) {
    $a = shortcode_atts( array(
        'text' => 'click here'
    ), $atts );

    return '<a onclick="$zoho.salesiq.floatwindow.visible(\'show\');">'.$a['text'].'</a>';
}
add_shortcode( 'onlick', 'myonlick_func' );

像这样使用(在wordpress帖子里面):

[onclick text="click here"]

已编辑问题的更新:

解析短代码的Wordpress API不会解析嵌套的短代码(相似的那些代码),但可以解析不同according to this wordpress post的嵌套短代码(这是wordpress中的已知问题,包含短代码和各种插件和库使用他们自己的短代码解析方案,以覆盖默认行为)

新问题的短代码解决方案是创建一个像这样的上下文短代码:

// [link_onlick][/link_onlick]
function myonlick_func( $atts, $content = '' ) {
    $a = shortcode_atts( array(
        'text' => 'click here'
    ), $atts );

    return '<a onclick="$zoho.salesiq.floatwindow.visible(\'show\');">'.do_shortcode( $content ).'</a>';
}
add_shortcode( 'link_onlick', 'myonlick_func' );

像这样使用:

[link_onlick]
[tt_vector_box icon="fa-comments" size="fa-4x" color="#FF8300" link_to_page="" target="" description=""]
<h3>Customer Service</h3>
Do you have any questions?
Talk to our Live Help online service
[/tt_vector_box]
[/link_onlick]

这个新的短代码是自定义的并由您创建(默认情况下它不存在于wordpress中)。新短代码[link_onlick][/link_onlick]的代码可以放在你的wordpress functions.php文件中(它是为你的wordpress网站定义自定义函数的文件)