onclick アクションがビジュアルとテキストの切り替えで消えてしまうことの対策
私はTinyMCE Advancedを使って投稿を書いていくのですが、この前困ったことが起きました。
それは、投稿をテキストで編集していたときには、inputボックスのonclickアクションが正常に動作したのですが、そこからビジュアルで編集し直すと、動作しなくなるのです。
初めは何が起きたのか全く分からず唖然としました。
もう一度テキストに戻り、良くソースを見てみると、なんとonclickアクションが消えてしまっていました。どうもビジュアルに切り替えると、コードを整形してくれようで、onclickは不必要なものとして扱われるみたいです。
初めは何とかする方法は無いかと思いましたが、最終的には、ショートコードにしてしまえばいいのではないかと考え着きました。
ということで作ったショートコードが以下です。
function print_button_f($atts) {
extract(shortcode_atts(array(
'class' =>'', //ボタンに付けるクラスの初期値
'value' => '送信', //ボタンに表示される文字の初期値
'onclick' => 'onclick' //onclickアクション名の初期値
), $atts));
$str = '<input class="'.$class.'" type="button" value="'.$value.'" onclick="'.$onclick.'()" />';
return $str;
}
あとは、ボタンを入れたいところに、[btn class="button" value="OK" onclick="click"]などと書けばができます。