问题 #441💬 已回答提出于 2017年10月20日作者 santiph0 个反应

忽略/避免变更计数

快速解答作者 artf

@santiph好,如果问题是“onbeforeunload”,可以用“noticeOnUnload”禁用它。 “''js Grapesjs.init({ ... noticeOnUnload: false }) ```

阅读下方完整回答 ↓

问题

由于 https://github.com/artf/grapesjs/issues/436,我无法依赖 StorageManager 的远程加载方法从 REST 端点加载模板,所以我只能用 'editor.setComponents()' 和 'editor.setStyle()' 这两个替代工具(这些工具在命令中使用,所以可以使用 'grapesjs' 和 'editor')。

不幸的是,这些方法会让“changesCount”增加,并在用户试图离开网页时触发“onbeforeunload”事件。 此外,命令中包含诸如“editor.editor.set('changesCount', 0);”这样的句子是无用的,因为命令一结束,changesCount 就会递增(即使执行完 run() 和 stop() 执行后也是如此)。

有没有什么解决办法?或者有没有办法在使用后立即覆盖changesCount?

谢谢。 附注:至于 https://github.com/artf/grapesjs/issues/436,我将致力于为获取库做一个重构提案,使其符合REST标准。希望下周能推到它

回答(3)

artf2017年10月23日

@santiph好,如果问题是“onbeforeunload”,可以用“noticeOnUnload”禁用它。 “''js Grapesjs.init({ ... noticeOnUnload: false })

santiph2017年10月23日

你好@artf 我需要持续提醒用户任何未保存的更改。当没有新内容需要保存时,跳过它:当创建新的空模板时,无论是保存完还是加载模板后,都不应显示任何确认信息。

通过StorageManager保存场景是正常的。加载时不行,遗憾的是。至少当组件、样式、HTML 等内容是通过编辑器的 API 加载,而不是通过 StorageManager .load() 加载时,是这样。

santiph2017年10月24日

我可以用远程存储完整测试: “onbeforeunload”在保存后关闭时如预期般被禁用。 不幸的是,加载新模板后关闭时,它仍然显示。

经过一番调试,加载新模板似乎会将“changesCount”提高到1。 (加载“changesCount” = 1。加载 'changesCount' = 2.加载“changesCount” = 3.) 如果模板更改的原因是加载新模板,这个计数器怎么可能重置?

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。