mirror of
https://github.com/9001/copyparty.git
synced 2025-08-18 09:22:31 -06:00
fix markdown scrollmap desync on offsite images
This commit is contained in:
parent
da5f15a778
commit
16c1877f50
|
@ -73,6 +73,26 @@ function statify(obj) {
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
// image load handler
|
||||||
|
var img_load = (function () {
|
||||||
|
var r = {};
|
||||||
|
r.callbacks = [];
|
||||||
|
|
||||||
|
function fire() {
|
||||||
|
for (var a = 0; a < r.callbacks.length; a++)
|
||||||
|
r.callbacks[a]();
|
||||||
|
}
|
||||||
|
|
||||||
|
var timeout = null;
|
||||||
|
r.done = function () {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = setTimeout(fire, 500);
|
||||||
|
};
|
||||||
|
|
||||||
|
return r;
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
// faster than replacing the entire html (chrome 1.8x, firefox 1.6x)
|
// faster than replacing the entire html (chrome 1.8x, firefox 1.6x)
|
||||||
function copydom(src, dst, lv) {
|
function copydom(src, dst, lv) {
|
||||||
var sc = src.childNodes,
|
var sc = src.childNodes,
|
||||||
|
@ -356,6 +376,10 @@ function convert_markdown(md_text, dest_dom) {
|
||||||
|
|
||||||
copydom(md_dom, dest_dom, 0);
|
copydom(md_dom, dest_dom, 0);
|
||||||
|
|
||||||
|
var imgs = dest_dom.getElementsByTagName('img');
|
||||||
|
for (var a = 0, aa = imgs.length; a < aa; a++)
|
||||||
|
imgs[a].onload = img_load.done;
|
||||||
|
|
||||||
if (ext && ext[0].render2)
|
if (ext && ext[0].render2)
|
||||||
try {
|
try {
|
||||||
ext[0].render2(dest_dom);
|
ext[0].render2(dest_dom);
|
||||||
|
@ -490,6 +514,7 @@ function init_toc() {
|
||||||
// "main" :p
|
// "main" :p
|
||||||
convert_markdown(dom_src.value, dom_pre);
|
convert_markdown(dom_src.value, dom_pre);
|
||||||
var toc = init_toc();
|
var toc = init_toc();
|
||||||
|
img_load.callbacks = [toc.refresh];
|
||||||
|
|
||||||
|
|
||||||
// scroll handler
|
// scroll handler
|
||||||
|
|
|
@ -127,6 +127,12 @@ var draw_md = (function () {
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
// discard TOC callback, just regen editor scroll map
|
||||||
|
img_load.callbacks = [function () {
|
||||||
|
map_pre = genmap(dom_pre, map_pre);
|
||||||
|
}];
|
||||||
|
|
||||||
|
|
||||||
// resize handler
|
// resize handler
|
||||||
redraw = (function () {
|
redraw = (function () {
|
||||||
function onresize() {
|
function onresize() {
|
||||||
|
@ -136,7 +142,6 @@ redraw = (function () {
|
||||||
dom_ref.style.width = getComputedStyle(dom_src).offsetWidth + 'px';
|
dom_ref.style.width = getComputedStyle(dom_src).offsetWidth + 'px';
|
||||||
map_src = genmap(dom_ref, map_src);
|
map_src = genmap(dom_ref, map_src);
|
||||||
map_pre = genmap(dom_pre, map_pre);
|
map_pre = genmap(dom_pre, map_pre);
|
||||||
dbg(document.body.clientWidth + 'x' + document.body.clientHeight);
|
|
||||||
}
|
}
|
||||||
function setsbs() {
|
function setsbs() {
|
||||||
dom_wrap.setAttribute('class', '');
|
dom_wrap.setAttribute('class', '');
|
||||||
|
|
Loading…
Reference in a new issue