0

我需要从 URL 加载新选项卡的内容,但无法正常工作

我需要与 HTML 5 之前的 IFrame 相同的东西

我要访问的网站没有任何指向托管网站的链接

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

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

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

如您所见,我正在使用 MVC 包装器

保罗

4

1 回答 1

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 并替换任何图像、css 和 javascript 引用......这仍然可能无法提供与 iframe 相同的体验。

于 2017-04-23T12:18:13.697 回答