Как открыть другие веб-сайты внутри углового приложения - PullRequest
3 голосов
/ 22 мая 2019

Я пытаюсь загрузить другой сайт, где у меня будет список сайтов.Если я нажимаю на ссылку веб-сайта, он должен открыть веб-сайт внутри моего углового приложения.Есть ли какая-либо опция, доступная в угловом или любом другом месте, которую я могу использовать для загрузки сайта, где они ограничивают загрузку сайтов

Я пробовал использовать элементы тегов HTML для загрузки сайтов, встроенных функций, функций загрузки и jquery.,Некоторые веб-сайты открываются, а некоторые сайты ограничиваются открытием в других приложениях

<html>
<body>
<iframe src="https://stackoverflow.com" height="100%" width="100%"></iframe>
</body>
</html>

В угловых

  <div >
    <iframe id="companyFrame" [src]="sourceURL | safe" class="frame"> 
    </iframe>
  </div>

  @Pipe({ name: "safe" })
  export class SafePipe implements PipeTransform {
  constructor(private sanitizer: DomSanitizer) {}
  transform(url) {
    return this.sanitizer.bypassSecurityTrustResourceUrl(url);
   }
  }

Например, я ожидаю загрузить сайт домашней страницы StackOverflow, но я получилошибка типа Отказал в отображении 'https://stackoverflow.com/' во фрейме, потому что для' X-Frame-Options 'установлено значение' sameorigin '. По умолчанию браузер ограничивает загрузку страницы в iframe, еслиВладелец сайта не хочет этого разрешать.Поэтому я хочу альтернативные варианты вместо iframe

Ответы [ 6 ]

4 голосов
/ 22 мая 2019

«X-Frame-Options» применяются владельцами / серверами, чтобы люди не могли использовать свой сайт в качестве других сайтов, использующих Iframe.

Подумайте, как ситуация: если вы запустите Google в iframe на всей своей странице, вы сможете использовать свой URL для показа в Google, вы также можете совершать и другие безумные поступки.

Существует некоторое расширение chorme / FF, которое вы можете использовать для обхода. Но вы не можете ожидать, что все ваши пользователи будут использовать это.

https://chrome.google.com/webstore/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe

0 голосов
/ 22 мая 2019

Как правило, заголовки для веб-сайта устанавливаются на веб-сервере, если заголовки «X-Frame-Options» для файлов установлены как sameorigin, вы не можете загрузить сайт из любого другого источника.

'X-Frame-Options' - это заголовок, который, по сути, не позволяет никому загружать ваш сайт на другом сайте.

Единственное, что вы можете сделать, это открыть сайт в новой вкладке / окне, или вы можете просто перенаправить в том же приложении.

0 голосов
/ 22 мая 2019

Вы можете попробовать вот так.

<object data="https://stackoverflow.com" width="600" height="400">
    <embed src="https://stackoverflow.com" width="600" height="400"/>
</object>
0 голосов
/ 22 мая 2019

Используйте window.open ().Это довольно просто!

В вашем файле component.html -

<a (click)="goToLink("www.example.com")">page link</a>

В вашем файле component.ts -

goToLink(url: string){
window.open(url, "_blank");
}

Вместоиспользуя "_blank" используется "_self"

0 голосов
/ 22 мая 2019

Попробуйте DOM Sanitizing элемента и добавьте его с помощью div как innerHTML.Так что у вас будет упаковщик div для управления iframe.

К вашему сведению.https://angular.io/api/platform-browser/DomSanitizer

0 голосов
/ 22 мая 2019

Попробуйте добавить target:

<iframe src="https://stackoverflow.com" height="100%" width="100%"  target="_parent"></iframe>
...