fix: add try-catch to warn cross domain

This commit is contained in:
chenshenhai 2022-01-05 22:50:35 +08:00
parent 53989cc4a3
commit 6008590037
3 changed files with 46 additions and 25 deletions

View file

@ -168,8 +168,24 @@ We appreciate your help!
To contribute, please follow the steps:
### Step 1: Prepare Project
- `git clone git@github.com:idrawjs/idraw.git`
- `cd idraw`
- `npm i`
- `npm run init`
- `npm run dev` to select and develop single package
### Step 2: Development
#### Simple Mode
- `npm run start` to select and develop single package
#### Complete Mode
- `npm run dev` for compiling all packages
- `npm run dev ${module}` for compiling single module such as `idraw`
- `npm run serve` for starting a server
- http://127.0.0.1:8080
- http://127.0.0.1:8080/packages/idraw/examples/features/
- http://127.0.0.1:8080/packages/core/examples/features/

View file

@ -2,8 +2,8 @@
"name": "root",
"private": false,
"scripts": {
"dev": "node ./scripts/dev-vite.js",
"dev:board": "node ./scripts/dev-rollup.js board",
"start": "node ./scripts/dev-vite.js",
"dev": "node ./scripts/dev-rollup.js",
"build": "npm run build:src && npm run build:min",
"build:src": "NODE_ENV=production BUILD_MODE=reset node ./scripts/build-bundle.js",
"build:mod": "node ./scripts/build-module.js",
@ -68,8 +68,8 @@
"serve-handler": "^6.1.3",
"terser": "^5.9.0",
"ts-node": "^9.1.1",
"tslib": "^2.2.0",
"typescript": "^4.3.2",
"tslib": "^2.3.1",
"typescript": "^4.5.4",
"vite": "^2.7.10"
}
}

View file

@ -72,28 +72,33 @@ export class ScreenWatcher {
}
_initParentEvent() {
let target = window;
let targetOrigin = target.origin;
while (target.self !== target.top) {
// If in iframe
if (target.self !== target.parent) {
// If in same origin
if (target.origin === targetOrigin) {
// window.parent.window.addEventListener(
// 'mousemove',
// throttle(this._listSameOriginParentWindow.bind(this), 16),
// false);
target.parent.window.addEventListener(
'mousemove',
this._listSameOriginParentWindow.bind(this),
false);
try {
let target = window;
let targetOrigin = target.origin;
while (target.self !== target.top) {
// If in iframe
if (target.self !== target.parent) {
// If in same origin
if (target.origin === targetOrigin) {
// window.parent.window.addEventListener(
// 'mousemove',
// throttle(this._listSameOriginParentWindow.bind(this), 16),
// false);
target.parent.window.addEventListener(
'mousemove',
this._listSameOriginParentWindow.bind(this),
false);
}
}
// @ts-ignore
target = target.parent;
if (!target) {
break;
}
}
// @ts-ignore
target = target.parent;
if (!target) {
break;
}
} catch (err) {
console.warn(err);
}
}