【问题标题】:Use "Updated WMD Editor" in textareas loaded by AJAX Forms在 AJAX 表单加载的文本区域中使用“更新的 WMD 编辑器”
【发布时间】:2010-10-23 12:41:17
【问题描述】:

我们正在尝试在 Symfony 项目中使用 Stackoverflow 出色的 WMD / Markdown 编辑器(http://blog.stackoverflow.com/2009/01/updated-wmd-editor/http://github.com/derobins/wmd/tree/master)。

这在不涉及任何 AJAX 的文本区域上非常有效。但是当我们必须首先包含 wmd.js,然后在用户交互(即“单击链接”)通过 AJAX 加载文本区域时,我们完全无法使 WMD 工作,Firebug 正在给我们

elem is null

addEvent()()wmd.js (Linie 110)
setupEvents()()wmd.js (Linie 1790)
init()()wmd.js (Linie 1970)
previewManager()()wmd.js (Linie 1987)
loadListener()()wmd.js (Linie 1763)

[Break on this error] if (elem.attachEvent) {

在加载页面时(即在 textarea 加载之前)。

Symfony 的 AJAX 加载器似乎 eval() 标记之间的所有内容。我们尝试在这些标签之间直接包含整个脚本,我们尝试转义这个和那个,但没有成功,出现了不同的错误。

此时我们认为我们必须将脚本包含在普通页面中,并且在 AJAX 调用之后我们必须手动启动 WMD - 我们必须调用哪些函数?我们是否完全偏离了轨道,需要使用不同的方法?

谢谢!

【问题讨论】:

    标签: ajax symfony1 wmd wmd-editor


    【解决方案1】:

    你可以使用我的版本。只需将构造函数调用、配置值和对 start() 方法的调用放在处理您从 AJAX 请求获得的结果的回调函数中。 My version of mooWMD.

    【讨论】:

      【解决方案2】:

      github 上 wmd 的 drobins fork 也在解决 AJAX 问题。

      【讨论】:

      • 查看我上面的答案
      【解决方案3】:

      我遇到了同样的问题,一旦我的 textarea 被异步添加到页面中,我就会初始化 WMD。

      这是我的代码:

      function loadTextEditor()
      {
          var instances = [];
      
          if (!Attacklab || !Attacklab.wmd) {
                      alert("WMD hasn't finished loading!");
                      return;
                  }
          /***** build the preview manager *****/
          var textArea = document.getElementById('postcontent');
          var previewPane = document.getElementById('postPreview');
      
          var panes = {input:textArea, preview:previewPane, output:null};
          var previewManager = new Attacklab.wmd.previewManager(panes);
      
          /***** build the editor and tell it to refresh the preview after commands *****/
          var editor = new Attacklab.wmd.editor(textArea,previewManager.refresh);
      
          // save everything so we can destroy it all later
          instances.push({ta:textarea, div:previewDiv, ed:editor, pm:previewManager});
      
      }
      

      【讨论】:

        猜你喜欢
        • 2010-12-28
        • 2016-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多