0

当双击该行或单击“编辑”按钮并选择一行时,我正在通过数据行中的数据填充 YUI RTE。IE 和 FF 按预期执行,但 Chrome 填充了 html 内容(我从 chrome 的检查 el 功能中调试知道这一点),然后几毫秒后,它会删除它。有什么建议么??

这是我构建 YUI RTE 的方式

function CreateRTE() {

    //create the RTE:
    emailEditor = new YAHOO.widget.Editor('txtEmlBody', { width: '468px', height: '200px' });

    //After the Editor renders it, we will hide it so the iframe doesn't bleed through
    emailEditor.on('afterRender', emailEditor.hide);

    //Add the insert token button when the toolbar is loaded
    emailEditor.on('toolbarLoaded', function () {

        //Create the button configuration
        var config = { type: 'menu', label: 'Insert Token', value: 'inserttoken', menu: tokenMenu };

        //Add the button to the toolbar
        emailEditor.toolbar.addButtonToGroup(config, 'insertitem');

        //Add the event handler for a menu item click
        emailEditor.toolbar.on('inserttokenClick', function (ev) { this.execCommand('inserthtml', ev.button.value); }, emailEditor, true);

    });

    //render the editor explicitly into a container within the Dialog's DOM:
    emailEditor.render();


}

这是我在双击一行时填充 RTE 或在选择一行时单击编辑按钮的方式。

function EditEmail() {

    //Get the record from the datatable
    var dt = grids.tblEmails.dataTable;
    var tr = dt.getSelectedRows()[0];
    var row = dt.getRecord(tr);

    //Populate the form
    YAHOO.util.Dom.get('hidEmlId').value = row.getData('ID');
    YAHOO.util.Dom.get('hidEmlType').value = row.getData('Type');
    YAHOO.util.Dom.get('txtEmlSubject').value = row.getData('Title');

    emailEditor.setEditorHTML(row.getData('Body'));

    //Show the dialog
    dialogs.dlgEmail.show();

}

我确实阅读了这篇文章,但问题似乎不匹配。正在填充 html 编辑器的上下文,然后将其删除.... sooo ,非常感谢任何帮助。

4

1 回答 1

2

( row.getData('Body') ),在设置编辑器的 html 之前,尝试使用 html 更新编辑器的支持文本区域(emailEditor.setEditorHTML(row.getData('Body'));)。这应该允许它在 Chrome/Safari 中工作。

于 2012-04-13T13:39:04.113 回答