From 6008590037cf46e966b56c71b7c3cd4a650b3698 Mon Sep 17 00:00:00 2001 From: chenshenhai Date: Wed, 5 Jan 2022 22:50:35 +0800 Subject: [PATCH] fix: add try-catch to warn cross domain --- README.md | 18 +++++++++- package.json | 8 ++--- packages/board/src/lib/screen-watcher.ts | 45 +++++++++++++----------- 3 files changed, 46 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index d8b102a..9d84eed 100644 --- a/README.md +++ b/README.md @@ -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 \ No newline at end of file + +### 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/ diff --git a/package.json b/package.json index fc8a94d..5162ab4 100644 --- a/package.json +++ b/package.json @@ -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" } } diff --git a/packages/board/src/lib/screen-watcher.ts b/packages/board/src/lib/screen-watcher.ts index 376599f..a425c2f 100644 --- a/packages/board/src/lib/screen-watcher.ts +++ b/packages/board/src/lib/screen-watcher.ts @@ -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); } }