[FIX] web_editor: Evoid the risk of deleting the summernote library
For iframes, we need to inject summernote because there are references to "document" in it. When loading the iframe, if it is canceled, there is a risk that the library is erased and that it breaks the field html. We must also slightly modify the library to prevent it from making changes to the library of the main "window".
This commit is contained in:
@@ -1695,7 +1695,7 @@ var dom = {
|
||||
isCustomStyleTag: isCustomStyleTag
|
||||
};
|
||||
|
||||
$$1.summernote = $$1.summernote || {
|
||||
$$1.summernote = {
|
||||
lang: {}
|
||||
};
|
||||
$$1.extend($$1.summernote.lang, {
|
||||
|
||||
@@ -13,6 +13,8 @@ $.fn.summernote = function () {
|
||||
var summernote = this[0].ownerDocument.defaultView._fnSummenoteSlave || _fnSummernoteMaster;
|
||||
return summernote.apply(this, arguments);
|
||||
};
|
||||
window._fnSummernoteMaster = $.fn.summernote;
|
||||
window._summernoteMaster = _summernoteMaster;
|
||||
|
||||
/**
|
||||
* Add option (inIframe) to load Wysiwyg in an iframe.
|
||||
|
||||
@@ -23,19 +23,15 @@
|
||||
<div id="iframe_target" style="height: calc(100vh - 6px);"/>
|
||||
<script type="text/javascript">
|
||||
window.$ = window.jQuery = window.top.jQuery;
|
||||
var _summernoteMaster = $.summernote;
|
||||
var _fnSummernoteMaster = $.fn.summernote;
|
||||
delete $.summernote;
|
||||
delete $.fn.summernote;
|
||||
</script>
|
||||
<script type="text/javascript" src="/web_editor/static/lib/summernote/summernote.js"/>
|
||||
<script type="text/javascript">
|
||||
window._summernoteSlave = $.summernote;
|
||||
window._summernoteSlave.iframe = true;
|
||||
window._summernoteSlave.lang = _summernoteMaster.lang;
|
||||
window._summernoteSlave.lang = window.top._summernoteMaster.lang;
|
||||
window._fnSummenoteSlave = $.fn.summernote;
|
||||
$.summernote = _summernoteMaster;
|
||||
$.fn.summernote = _fnSummernoteMaster;
|
||||
$.summernote = window.top._summernoteMaster;
|
||||
$.fn.summernote = window.top._fnSummernoteMaster;
|
||||
if (window.top.<t t-esc="updateIframeId"/>) {
|
||||
window.top.<t t-esc="updateIframeId"/>(<t t-esc="avoidDoubleLoad"/>);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user