在PHP中使用innerHTML加载TinyMCE

时间:2019-02-21 13:54:31

标签: javascript php tinymce

基于选定的选项,代码在 complemento1 div上打印 textarea

        if ($_GET["t"]==1) /// Text
    {
        $str="";
        $str.="<table width=100%>";
            $str.="<tr>";
                $str.="<td>";
                    $str.="Digite aqui o texto que será exibido:";
                $str.="</td>";
            $str.="<tr>";
                $str.="<td>";
                    $str.="<textarea id='texto' name='texto' rows=3 cols=80>".$row["texto"]."</textarea>";
                $str.="</td>";
        $str.="</table>";
        echo "<script>window.parent.document.getElementById('complemento1').innerHTML=\"".$str."\";</script>";
    }

现在我想添加一个TinyMCE编辑器,但是我的尝试失败了,我试图将代码放在PHP文件中:

    <script src="/_assets/editor/vendor/tinymce/tinymce/tinymce.min.js"></script>
    <script type="text/javascript">tinymce.init({mode: 'textareas', language: 'pt_BR', menubar: '', statusbar: false});</script>

尽管“模式:textareas”没有任何反应...如果我在代码中调用init:

<script>window.parent.document.getElementById('complemento1').innerHTML=\"".$str."\"; tinymce.init({mode: 'textareas', language: 'pt_BR', menubar: '', statusbar: false});</script>

在控制台上找到错误:

Uncaught ReferenceError: tinymce is not defined
at 

^^^它已经在我的PHP中定义! (在头部)

我哪里出错了?如何正确定义TinyMCE?

1 个答案:

答案 0 :(得分:0)

首先尝试在开始时加载tinymce ,然后尝试将其打开以检查是否存在

<script src="/_assets/editor/vendor/tinymce/tinymce/tinymce.min.js"></script>

或在加载代码后尝试运行您的JS:

$('#complemento1').html(\"".$str."\").promise().done(function( arg1 ) {
  //  try fire the event here  
 tinymce.init({mode: 'textareas', language: 'pt_BR', menubar: '', statusbar: false})
});

您也可以尝试添加document.ready函数

$( document ).ready(function() {
    $('#complemento1').html(\"".$str."\").promise().done(function( arg1 ) {
     //  try fire the event here  
    tinymce.init({mode: 'textareas', language: 'pt_BR', menubar: '', statusbar: false})
    });
});