safely scroll element since its last event may fired after being removed

This commit is contained in:
Yanzhen Yu
2018-12-21 14:31:19 +08:00
parent b3412b1d46
commit f1fbb9d07e

View File

@@ -1,4 +1,4 @@
import { rebuild, buildNodeWithSN } from 'rrweb-snapshot';
import { rebuild, buildNodeWithSN, INode } from 'rrweb-snapshot';
import * as mittProxy from 'mitt';
import Timer from './timer';
import {
@@ -422,8 +422,15 @@ export class Replayer {
behavior: isSync ? 'instant' : 'smooth',
});
} else {
(target as Element).scrollTop = d.y;
(target as Element).scrollLeft = d.x;
try {
(target as Element).scrollTop = d.y;
(target as Element).scrollLeft = d.x;
} catch (error) {
/**
* Seldomly we may found scroll target was removed before
* its last scroll event.
*/
}
}
break;
}