2017-04-23 52 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'/>");      
 
        }) 
 
       )
沒有鏈接到託管網站

有沒有人能夠做到這一點?

我使用的MVC包裝,你可以看到

保羅

回答

0

首先,你需要爲你的panelbar指定一個名稱,否則將無法正常工作。關於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問題並且您可以加載內容,這仍然不會像iframe那樣工作,因爲您只會收到HTML,這可能會導致圖片損壞,並且不會顯示CSS 。這是因爲你將把這個html放在一個文檔中,除非它們被域名引用,否則它不能訪問這些資源。你將不得不搜索你收到的整個html,並替換任何圖像,C​​SS和JavaScript引用......並且仍然可能不會提供與iframe相同的體驗。

+0

好的感謝信息。有沒有其他的選擇? – Paul

+0

這取決於你準備做什麼以及在哪個站點。將外部網站嵌入到自己的網站中並不像以前那樣容易做到。這被認爲是一種安全風險,現代瀏覽器大多數時間都不允許。您應該看看您要使用的網站是否提供了用於嵌入的官方窗口小部件(如youtube的嵌入代碼),或者他們是否提供了可用於與網站進行交互的API。 – Orilux