diff --git a/resources/js/markdown/actions.js b/resources/js/markdown/actions.js
index 96093d833..96f9b263c 100644
--- a/resources/js/markdown/actions.js
+++ b/resources/js/markdown/actions.js
@@ -78,7 +78,7 @@ export class Actions {
 
             const data = {
                 image: pngData,
-                uploaded_to: Number(this.pageId),
+                uploaded_to: Number(this.editor.config.pageId),
             };
 
             window.$http.post("/images/drawio", data).then(resp => {
@@ -368,7 +368,7 @@ export class Actions {
         const scroll = this.editor.cm.getScrollInfo();
         const atEnd = scroll.top + scroll.clientHeight === scroll.height;
         if (atEnd) {
-            editor.display.scrollToIndex(-1);
+            this.editor.display.scrollToIndex(-1);
             return;
         }
 
@@ -377,7 +377,7 @@ export class Actions {
         const parser = new DOMParser();
         const doc = parser.parseFromString(this.editor.markdown.render(range), 'text/html');
         const totalLines = doc.documentElement.querySelectorAll('body > *');
-        editor.display.scrollToIndex(totalLines.length);
+        this.editor.display.scrollToIndex(totalLines.length);
     }
 
     /**
@@ -404,7 +404,7 @@ export class Actions {
         const cursorPos = this.editor.cm.coordsChar({left: event.pageX, top: event.pageY});
         this.editor.cm.setCursor(cursorPos);
         for (const image of images) {
-            editor.actions.uploadImage(image);
+            this.editor.actions.uploadImage(image);
         }
     }
 }
\ No newline at end of file
diff --git a/resources/js/markdown/codemirror.js b/resources/js/markdown/codemirror.js
index 27491902a..06860b929 100644
--- a/resources/js/markdown/codemirror.js
+++ b/resources/js/markdown/codemirror.js
@@ -23,7 +23,7 @@ export async function init(editor) {
     cm.on('change', (instance, changeObj) => editor.actions.updateAndRender());
 
     // Handle scroll to sync display view
-    const onScrollDebounced = debounce(editor.actions.syncDisplayPosition, 100, false);
+    const onScrollDebounced = debounce(editor.actions.syncDisplayPosition.bind(editor.actions), 100, false);
     cm.on('scroll', instance => onScrollDebounced(instance));
 
     // Handle image paste
diff --git a/resources/js/markdown/display.js b/resources/js/markdown/display.js
index 742198b46..7e1925431 100644
--- a/resources/js/markdown/display.js
+++ b/resources/js/markdown/display.js
@@ -26,7 +26,7 @@ export class Display {
         this.doc.body.className = 'page-content';
 
         // Prevent markdown display link click redirect
-        this.doc.addEventListener('click', this.onDisplayClick)
+        this.doc.addEventListener('click', this.onDisplayClick.bind(this));
     }
 
     /**
@@ -91,8 +91,8 @@ export class Display {
      * @param {Number} index
      */
     scrollToIndex(index) {
-        const elems = this.doc.body.children;
-        if (elems.length <= index) return;
+        const elems = this.doc.body?.children[0]?.children;
+        if (elems && elems.length <= index) return;
 
         const topElem = (index === -1) ? elems[elems.length-1] : elems[index];
         topElem.scrollIntoView({ block: 'start', inline: 'nearest', behavior: 'smooth'});