@cloudbase/cals 1.2.21-alpha.5 → 1.2.21-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -496,7 +496,12 @@ function loadProdMetaScript(bundleName, filename) {
496
496
  try {
497
497
  const iframe = document.createElement('iframe');
498
498
  iframe.setAttribute('sandbox', 'allow-scripts');
499
- iframe.style.display = 'none';
499
+ iframe.style.position = 'absolute'; // 脱离文档流
500
+ iframe.style.left = '-9999px'; // 移到屏幕左侧很远的地方
501
+ iframe.style.top = '-9999px'; // 移到屏幕上方很远的地方
502
+ iframe.style.width = '1px'; // 保持一个最小的尺寸
503
+ iframe.style.height = '1px'; // 保持一个最小的尺寸
504
+ iframe.style.border = 'none'; // 确保没有边框
500
505
  const moduleName = `@weapps-materials-control-${bundleName}`;
501
506
  const messageHandler = (event) => {
502
507
  // 安全检查:确保消息来自我们刚刚创建的iframe
@@ -516,14 +521,17 @@ function loadProdMetaScript(bundleName, filename) {
516
521
  window.addEventListener('message', messageHandler);
517
522
  // 从下面这段是 iframe-srcdoc.src.js 中搞出来的
518
523
  const scriptStr = "window.addEventListener('error', (event) => {\n" +
519
- ' parent.postMessage(\n' +
520
- " { status: 'error', error: `meta bundle load failed: ${event?.message || ''} ${document.currentScript.src}` },\n" +
521
- ' origin,\n' +
522
- ' );\n' +
524
+ ' parent.postMessage({\n' +
525
+ " status: 'error',\n" +
526
+ " error: `meta bundle load failed: ${event?.message || ''} ${document.currentScript.src}`,\n" +
527
+ ' });\n' +
523
528
  '});\n' +
524
529
  "window.addEventListener('message', (event) => {\n" +
525
530
  ' const { data, origin } = event;\n' +
526
531
  ' const { filename, bundleName, moduleName } = data;\n' +
532
+ ' if (!filename || !bundleName || !moduleName) {\n' +
533
+ ' return;\n' +
534
+ ' }\n' +
527
535
  " const script = document.createElement('script');\n" +
528
536
  " script.setAttribute('src', filename);\n" +
529
537
  " script.setAttribute('class', '@weapps-materials-control');\n" +
@@ -555,7 +563,7 @@ function loadProdMetaScript(bundleName, filename) {
555
563
  </html>
556
564
  `;
557
565
  iframe.addEventListener('load', () => {
558
- iframe.contentWindow.postMessage({ filename, bundleName, moduleName }, window.location.origin);
566
+ iframe.contentWindow.postMessage({ filename, bundleName, moduleName }, '*');
559
567
  });
560
568
  document.body.appendChild(iframe);
561
569
  }
@@ -492,7 +492,12 @@ function loadProdMetaScript(bundleName, filename) {
492
492
  try {
493
493
  const iframe = document.createElement('iframe');
494
494
  iframe.setAttribute('sandbox', 'allow-scripts');
495
- iframe.style.display = 'none';
495
+ iframe.style.position = 'absolute'; // 脱离文档流
496
+ iframe.style.left = '-9999px'; // 移到屏幕左侧很远的地方
497
+ iframe.style.top = '-9999px'; // 移到屏幕上方很远的地方
498
+ iframe.style.width = '1px'; // 保持一个最小的尺寸
499
+ iframe.style.height = '1px'; // 保持一个最小的尺寸
500
+ iframe.style.border = 'none'; // 确保没有边框
496
501
  const moduleName = `@weapps-materials-control-${bundleName}`;
497
502
  const messageHandler = (event) => {
498
503
  // 安全检查:确保消息来自我们刚刚创建的iframe
@@ -512,14 +517,17 @@ function loadProdMetaScript(bundleName, filename) {
512
517
  window.addEventListener('message', messageHandler);
513
518
  // 从下面这段是 iframe-srcdoc.src.js 中搞出来的
514
519
  const scriptStr = "window.addEventListener('error', (event) => {\n" +
515
- ' parent.postMessage(\n' +
516
- " { status: 'error', error: `meta bundle load failed: ${event?.message || ''} ${document.currentScript.src}` },\n" +
517
- ' origin,\n' +
518
- ' );\n' +
520
+ ' parent.postMessage({\n' +
521
+ " status: 'error',\n" +
522
+ " error: `meta bundle load failed: ${event?.message || ''} ${document.currentScript.src}`,\n" +
523
+ ' });\n' +
519
524
  '});\n' +
520
525
  "window.addEventListener('message', (event) => {\n" +
521
526
  ' const { data, origin } = event;\n' +
522
527
  ' const { filename, bundleName, moduleName } = data;\n' +
528
+ ' if (!filename || !bundleName || !moduleName) {\n' +
529
+ ' return;\n' +
530
+ ' }\n' +
523
531
  " const script = document.createElement('script');\n" +
524
532
  " script.setAttribute('src', filename);\n" +
525
533
  " script.setAttribute('class', '@weapps-materials-control');\n" +
@@ -551,7 +559,7 @@ function loadProdMetaScript(bundleName, filename) {
551
559
  </html>
552
560
  `;
553
561
  iframe.addEventListener('load', () => {
554
- iframe.contentWindow.postMessage({ filename, bundleName, moduleName }, window.location.origin);
562
+ iframe.contentWindow.postMessage({ filename, bundleName, moduleName }, '*');
555
563
  });
556
564
  document.body.appendChild(iframe);
557
565
  }