无法从Kendo Panel Bar选项卡中的URL加载

时间:2017-04-23 10:25:55

标签: kendo-ui telerik-mvc kendo-panelbar

我需要从网址加载新标签的内容,但我无法使其正常工作

我需要与HTML 5之前的IFrame相同的事情。

我要访问的网站没有链接到托管网站

我先尝试过一个简单的版本

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

有没有人能够做到这一点?

我正在使用MVC包装器,你可以看到

1 个答案:

答案 0 :(得分:0)

首先,您需要为面板栏指定一个名称,否则它将无法正常工作。关于LoadContentFrom,您应该只提供一个网址。包括这个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问题并且您可以加载内容,那么这仍然不会像iframe一样工作,因为您将只收到HTML,这可能会破坏图像而没有CSS。这是因为您将把这个html放在一个文档中,该文档无权访问这些资源,除非它们被域名引用。你必须搜索你收到的整个HTML并替换任何图像,C​​SS和javascript引用......但仍然可能无法提供与iframe相同的体验。