diff --git a/src/core/platform/web/function.js b/src/core/platform/web/function.js index 230fc6ad5..1c74836e2 100644 --- a/src/core/platform/web/function.js +++ b/src/core/platform/web/function.js @@ -125,5 +125,17 @@ BI._.extend(BI, { } } return false; + }, + + getSafariVersion: function () { + if (!_global.navigator) { + return 0; + } + var agent = navigator.userAgent.toLowerCase(); + var version = agent.match(/version\/([\d.]+)/); + if (version && version[1]) { + return version[1] * 1; + } + return 0; } }); diff --git a/typescript/core/platform/web/function.ts b/typescript/core/platform/web/function.ts index 95b2d29ef..406eb95ee 100644 --- a/typescript/core/platform/web/function.ts +++ b/typescript/core/platform/web/function.ts @@ -9,4 +9,5 @@ export type _function = { isMac: () => boolean; isWindows: () => boolean; isSupportCss3: (style: any) => boolean; + getSafariVersion: () => number; } \ No newline at end of file diff --git a/typescript/core/worker/controller/worker.main_thread.controller.ts b/typescript/core/worker/controller/worker.main_thread.controller.ts index bd7dcfc96..b9ddb4fb6 100644 --- a/typescript/core/worker/controller/worker.main_thread.controller.ts +++ b/typescript/core/worker/controller/worker.main_thread.controller.ts @@ -10,9 +10,10 @@ export class WorkerMainThreadController extends WorkerBaseController { /** * 是否支持 new Worker, 默认为 Wroker Class 是否实现 + * 由于Blob url支持度问题 规避Safari 12以下版本 */ - public canNewWorker: boolean = WorkerMainThreadController.hasWorkerClass; + public canNewWorker: boolean = WorkerMainThreadController.hasWorkerClass && !(BI.isSafari() && BI.getSafariVersion() < 12); /** * 主线程 new Worker 起始时刻