Javascript 在我的网页中嵌入PageDown编辑器时,如何阻止它实时转换?

Javascript 在我的网页中嵌入PageDown编辑器时,如何阻止它实时转换?,javascript,pagedown,Javascript,Pagedown,我注意到PageDown提供了一个refreshPreview方法。我想关闭实时编辑,并使用此方法仅在用户按下预览按钮时进行转换 我尝试让onPreviewRefreshhook返回false,但它仍然会在每次更改事件时更新 这是我的密码: $(document).ready(function() { var converter = Markdown.getSanitizingConverter(); Markdown.Extra.init(converter, {table_class

我注意到PageDown提供了一个
refreshPreview
方法。我想关闭实时编辑,并使用此方法仅在用户按下预览按钮时进行转换

我尝试让
onPreviewRefresh
hook返回false,但它仍然会在每次更改事件时更新

这是我的密码:

$(document).ready(function() {
  var converter = Markdown.getSanitizingConverter();
  Markdown.Extra.init(converter, {table_class: "table table-striped"});
  var editor = new Markdown.Editor(converter);

  editor.hooks.chain("onPreviewRefresh", function () {
    console.debug("the preview has been updated");
  });

  editor.run();

  (function() {
    $('#wmd-preview').hide();

    $('button.preview').click(function() {
      editor.refreshPreview();
      $('#wmd-editor').hide();
      $('#wmd-preview').show();
    });

    $('button.edit').click(function() {
      $('#wmd-preview').hide();
      $('#wmd-editor').show();
    });
  })();
});

更新: 注释掉以下行()实际上可以实现我想要的:

//timeout = setTimeout(makePreviewHtml, delay);

但是,我会担心意外的副作用,所以我更喜欢外科手术方法——最好是不需要修改编辑器源代码的方法。

有一个名为
refreshPreview()
的函数,根据文档

强制更新预览。此方法仅在调用run()后可用

因此,您可能可以在单击处理程序中将该函数调用到您将创建的按钮以控制刷新,例如:

var converter1 = Markdown.getSanitizingConverter();
var editor1 = new Markdown.Editor(converter1);
editor1.run();
editor1.refreshPreview(); //<- something like this

希望这能有所帮助。

我在问题中添加的更新实际上让我找到了答案

显然,中的
startType
var就是专门为此目的提供的。将其从
delayed
更改为
manual
具有预期的效果(希望没有意外的副作用)


如果设置是作为
Markdown.Editor
配置选项提供的,我会更加放心。

重写PageDown源代码将是最后的选择。重写它,也就是重写一个特定的函数,会更好。
util.addEvent(panels.input, "keydown", handleModeChange);