2012-04-23 83 views
1

我想動態地在iframe中加載HTML文件。如何在javascript函數中編寫html文件的路徑

我嘗試下面的代碼:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('a').click(function (e) { 
     e.preventDefault(); 
     filename = "\"+$(this).text() + ".htm"; 
     alert(filename); 
     $('iframe').attr('src', filename); 
    }); 
}); </script> 

目錄結構: E:SVN_HobbyHomes \ HobbyHomesWebApp \ HTML \ Dancing.htm

這不加載在iframe中路徑的文件。 Howevr如果我寫這樣它的工作原理,但我不知道如何使用@ Url.Content在JavaScript

<iframe id="iframe" frameborder="0" src=src="@Url.Content("~/HTML/Dancing.htm")" style="width: 100%; height: 700px;"></iframe> 

史迪威它給我的錯誤:資源可以notbe找到!

回答

3

iframe的來源必須是一個URL,無論是絕對的還是相對的。你的不是一個URL,而是一個本地文件名。

+0

看到我的路徑可以告訴我應該如何寫入,以便它提取文件 – user1274646 2012-04-23 14:16:23

+0

您可以使用相對文件表示法來訪問您的文件,例如,如果'$(this).text()'指向與當前加載文件相同的目錄中的文件,則'filename =「/」+ $(this).text()+「。html」;' 如果您不清理'$(this).text()'中的用戶輸入,請注意您的代碼允許跨站點腳本(XSS)。 – Honoki 2012-04-23 14:19:59

+0

嘿,我試過wat你建議,但我得到一個錯誤,因爲資源not found.please幫助我 – user1274646 2012-04-24 04:38:25

1

這很可能是瀏覽器安全限制。由於(明顯)原因,瀏覽器內代碼不允許訪問工作站上的本地資源(沒有插件,也沒有明確授予更多權限)。

如果一個網頁可以訪問某個人的本地工作站上的文件,那它還能做什麼?你可以隨意訪問哪些其他文件?安全影響非常明顯。

您需要以與提供訪問網頁服務相同的方式來提供文件。

+0

那麼我怎樣才能訪問我的dat頁......請幫我 – user1274646 2012-04-24 04:44:34

+0

看看更新的問題,這聽起來像你在服務器端路徑與客戶端路徑混淆。如果服務器上存在_and_頁面並且客戶端可見,那麼您需要向客戶端提供客戶端可見路徑。這通常採用相對URL或Web服務器根目錄*中的絕對URL *的形式。客戶端將無法看到服務器驅動器號和類似的東西。因此,像@ @ Url.Content(「〜/ HTML/Dancing.htm」)這樣的東西就會將你提供的服務器端路徑轉換爲客戶端路徑。查看呈現的HTML以查看該路徑。 – David 2012-04-24 12:35:00

相關問題