gpt4 book ai didi

javascript - 当我的网页中嵌入 PageDown 编辑器时,如何阻止它进行实时转换?

转载 作者:行者123 更新时间:2023-11-28 08:17:23 24 4
gpt4 key购买 nike

我从 the docs 注意到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();
});
})();
});
<小时/>

更新:

注释掉以下行( line 909 here )实际上会实现我想要的:

//timeout = setTimeout(makePreviewHtml, delay);

但是,我担心意外的副作用,因此我更喜欢一种更手术的方法 - 最好是不需要修改编辑器源代码的方法。

最佳答案

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

forces the preview to be updated. This method is only available after run() was called.

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

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

现在,为了防止每个 keydownkeypress 事件刷新(我猜 PageDown 就是这样做的),我认为您至少有两个选择:

  • 编写自定义 javascript/jquery 代码来覆盖输入文本区域的 keydown/keypress 事件
  • 编辑文件 Markdown.Editor.js(在我的版本中大约第 593-627 行),以便注释掉为按键设置事件处理程序的行keydown 事件。特别是,我认为下面的行会触发关键事件的刷新:

    util.addEvent(panels.input, "keydown", handleModeChange);

希望这有帮助。

关于javascript - 当我的网页中嵌入 PageDown 编辑器时,如何阻止它进行实时转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23446860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com