window.ts 683 B

1234567891011121314151617181920212223242526
  1. interface OpenWindowOptions {
  2. noopener?: boolean;
  3. noreferrer?: boolean;
  4. target?: '_blank' | '_parent' | '_self' | '_top' | string;
  5. }
  6. /**
  7. * 新窗口打开URL。
  8. *
  9. * @param url - 需要打开的网址。
  10. * @param options - 打开窗口的选项。
  11. */
  12. function openWindow(url: string, options: OpenWindowOptions = {}): void {
  13. // 解构并设置默认值
  14. const { noopener = true, noreferrer = true, target = '_blank' } = options;
  15. // 基于选项创建特性字符串
  16. const features = [noopener && 'noopener=yes', noreferrer && 'noreferrer=yes']
  17. .filter(Boolean)
  18. .join(',');
  19. // 打开窗口
  20. window.open(url, target, features);
  21. }
  22. export { openWindow };