Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Text 如何在Prototype.js中结合对话框窗口和富文本编辑器?_Text_Modal Dialog_Editor_Prototypejs - Fatal编程技术网

Text 如何在Prototype.js中结合对话框窗口和富文本编辑器?

Text 如何在Prototype.js中结合对话框窗口和富文本编辑器?,text,modal-dialog,editor,prototypejs,Text,Modal Dialog,Editor,Prototypejs,我的页面上有几个文本区域,为了节省空间,当用户单击文本区域时,我想在模式对话框中打开文本编辑器。到目前为止我所做的: 已导入以下库和css: <script type="text/javascript" language="javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js"></script> <script type="text/javascr

我的页面上有几个文本区域,为了节省空间,当用户单击文本区域时,我想在模式对话框中打开文本编辑器。到目前为止我所做的:

已导入以下库和css:

<script type="text/javascript" language="javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js"></script>
<script type="text/javascript" language="javascript" src="https://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.3/scriptaculous.js"></script>
<script type="text/javascript" src="protoplasm.js"></script>
然后尝试运行它:

document.observe("dom:loaded", function () {
    $$("textarea:not(.overlay_textarea)").each(function (el) {
        el.observe('click', respondToClick);
        function respondToClick(event) {
            var element = Event.element(event);
            //var text = element.value;
            var text = $F(element);
            console.log(text);
            var content = '<textarea class="overlay_textarea">' + text + '</textarea>';
            console.log(content);

            function showDialog() {
                var d = new Dialog.HTML(content);
                d.show();
            }
            showDialog();                        
        }
    });
});
HTML只是:

<textarea id="h1_de_1" class="cright_txtarea" >tfzduto</textarea>
这将打开一个新的textarea对话框,其中包含单击的textarea中的文本。但编辑不会打开。我还尝试在showDialog调用后初始化编辑器,但没有成功。我是否需要一个特殊的事件监听器,还是无法将这两个元素组合在一起


注意:很抱歉没有JSFIDLE,但protoplasm库包含许多子目录,因此我无法将其导入其中。

看起来您试图通过插入元素来创建元素,并在同一行中保留对插入元素的引用。这可能会导致计时错误。更为冗长,但更可靠的方法是使用element.new在幕后创建元素,然后插入它,稍后再使用它执行任何您喜欢的操作。我已经建立了一个类似于您在这里提出的编辑器,它确实有效。还有一个提示:看看你的外循环是否真的捕获了任何元素。添加console.logel作为代码段的第三行,看看您是否真的得到了什么。谢谢您的提示!但是,我对Prototype.js的使用感到非常沮丧,因此我转而使用jQuery和Tiny MCE,因为我更了解这门语言;不,我尝试运行类似的东西:并使用jQuery的$.noConflict;希望它能起作用:D
<textarea id="h1_de_1" class="cright_txtarea" >tfzduto</textarea>