2017-04-23 9 views
0

내가 URL에서 새 탭의 내용을로드 할 필요 검도 패널 바 탭에 URL에서로드 할 수 있지만이

는 내가 함께 할되었을 것 같은 것은 같은 종류의 필요 동작하지 않습니다 HTML 5

내가 갈거야 웹 사이트 전에 IFrame을 내가 먼저 간단한 버전

@(Html.Kendo().PanelBar() 
 
        .Items(panelbar => 
 
        { 
 
         panelbar.Add().Text("Test").LoadContentFrom(@"<object data='https://www.google.com' type='text/html'/>");      
 
        }) 
 
       )
을 시도

어떠한 호스팅 사이트에는 링크가 없습니다

누구든지이 작업을 수행 할 수 있습니까? 당신이

답변

0

는 첫째로, 당신은 당신의 panelbar의 이름을 지정해야합니다

폴을 볼 수

나는 그렇지 않으면 작동하지 않습니다, MVC의 래퍼를 사용하고 있습니다. LoadContentFrom과 관련하여 URL을 제공하기 만하면됩니다. 이 html 마크 업을 포함하면 의미가 없습니다. 그래서 코드는 다음과 같이해야합니다 :

그러나
@(Html.Kendo().PanelBar() 
        .Name("Test") 
        .Items(panelbar => 
        { 
         panelbar.Add().Text("Test").LoadContentFrom(@"https://www.google.com/"); 
        }) 
) 

google.com에 요청 ​​(또는 적절한 access-control-allow-origin 헤더없이 다른 HTTPS 사이트가) CORS에 의해 차단되기 때문에, 이것은 여전히 ​​작동하지 않을 .

로드하려는 외부 사이트에 따라이 시나리오가 작동하거나 작동하지 않을 수 있습니다.

또한 CORS 문제가없고 콘텐츠를로드 할 수있는 경우 HTML을 수신하기 때문에 iframe처럼 작동하지 않습니다. 이미지가 손상되고 CSS가 없을 수 있습니다. . 이는 도메인 이름으로 참조되지 않는 한이 html을 해당 자원에 액세스 할 수없는 문서에 배치하기 때문입니다. 이미지, CSS 및 자바 스크립트 참조를 수신하고 대체하는 전체 HTML을 검색해야하며 iframe과 동일한 환경을 제공하지 못할 수도 있습니다.

+0

정보 주셔서 감사합니다. 대안이 있습니까? – Paul

+0

정확히 어떤 사이트를 사용하려고하는지에 따라 다릅니다. 자체 사이트에 외부 사이트를 삽입하는 것은 이전에 사용하던 것처럼 쉽게 할 수있는 일이 아닙니다. 이것은 보안 위험으로 간주되며 최신 브라우저는 대부분의 시간을 허용하지 않습니다. 함께 작업하려는 사이트가 (YouTube의 소스 코드와 같이) 퍼가기위한 공식 위젯을 제공하는지 또는 사이트와 상호 작용하는 데 사용할 수있는 API를 제공하는지 여부를 확인해야합니다. – Orilux