修复模型库跨端口消息发送
This commit is contained in:
@@ -320,7 +320,7 @@ function requestSceneModelImport() {
|
||||
window.parent.postMessage({
|
||||
type: requestSceneModelMessageType,
|
||||
requestId
|
||||
}, resolveParentOrigin());
|
||||
}, resolveParentPostMessageOrigin());
|
||||
notify("已请求主程序导出当前选中模型");
|
||||
}
|
||||
|
||||
@@ -360,7 +360,12 @@ function createSceneModelRequestId() {
|
||||
|
||||
function isAllowedParentOrigin(origin: string) {
|
||||
const expectedOrigin = resolveParentOrigin();
|
||||
return expectedOrigin === "*" || origin === expectedOrigin;
|
||||
return expectedOrigin === "*" || origin === expectedOrigin || isLocalDmtParentOrigin(origin);
|
||||
}
|
||||
|
||||
function resolveParentPostMessageOrigin() {
|
||||
const origin = resolveParentOrigin();
|
||||
return origin === window.location.origin ? "*" : origin;
|
||||
}
|
||||
|
||||
function resolveParentOrigin() {
|
||||
@@ -375,6 +380,16 @@ function resolveParentOrigin() {
|
||||
return "*";
|
||||
}
|
||||
|
||||
function isLocalDmtParentOrigin(origin: string) {
|
||||
try {
|
||||
const url = new URL(origin);
|
||||
const isLocalHost = url.hostname === "localhost" || url.hostname === "127.0.0.1";
|
||||
return isLocalHost && url.port === "3000";
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function ensureGlbFileName(fileName: string) {
|
||||
return fileName.toLowerCase().endsWith(".glb") ? fileName : `${fileName}.glb`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user