我需要从网址加载新标签的内容,但我无法使其正常工作
我需要与HTML 5之前的IFrame相同的事情。
我要访问的网站没有链接到托管网站
我先尝试过一个简单的版本
@(Html.Kendo().PanelBar()
.Items(panelbar =>
{
panelbar.Add().Text("Test").LoadContentFrom(@"<object data='https://www.google.com' type='text/html'/>");
})
)
有没有人能够做到这一点?
我正在使用MVC包装器,你可以看到
保
答案 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并替换任何图像,CSS和javascript引用......但仍然可能无法提供与iframe相同的体验。