發表文章

目前顯示的是 2月, 2024的文章

[Angular] 要在專案中,開啟外部網站連結的方法

  因為一般的windows.open(url) 用法 如果url非專案網站的同網址 就會因為同源政策(Same-origin policy)被擋住 所以要繞過 必須使用 DomSanitizer 官網:https://angular.io/guide/security#xss 首先先引用 import { DomSanitizer } from ' @angular/platform-browser ' ;   constructor (         private sanitizer : DomSanitizer ,   ) {} 而chatGPT的回應 符合邏輯和語法 但是實際上無法這樣使用 chatGPT的回應(以下程式碼無法使用): // 信任 URL const trustedUrl = this . sanitizer . bypassSecurityTrustUrl (Url); // 將 SafeUrl 轉換為字串 const urlString = trustedUrl. toString (); // 打開 URL window . open (urlString); 實務上 要做以下調整 在windows.open() 裡面建立protocol和取得 bypassSecurityTrustUrl() 這個object的內容     // 打開信任的 URL     window . open (       window . location . protocol +         ' // ' +         ( this . sanitizer . bypassSecurityTrustUrl ( lOpenUrl ) as any )           . changingThisBreaksApplicationSecurity ,     ) ; 也可以寫成這樣   ...