2012-04-23 15 views
1

HTMLファイルをIframeに動的に読み込みたいとします。javascript関数でhtmlファイルへのパスを書き込む方法

私は、次のコードを試してみました:それはインラインフレーム内のパスにファイルをロードしませんSVN_HobbyHomes \ HobbyHomesWebApp \ HTML \ Dancing.htm

<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を。私はそれが動作します。このように書くが、私はスティル

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

JavaScriptでUrl.Content @使用する方法を知っているドン場合 Howevrそれは私にエラーを与える:リソースが見つかりnotbeでした!!!

答えて

3

iframeのソースは、絶対または相対のいずれかのURLである必要があります。あなたはURLではなく、ローカルファイル名です。

+0

私のパスを見ると、iwriteを実行してファイルを取得する方法を教えてください。 – user1274646

+0

ファイルには、相対ファイル表記を使用してアクセスできます。 '$(this).text()'が現在ロードされているファイルと同じディレクトリにあるファイルを指している場合、 'filename ="/"+ $(this).text()+"。 '$(this).text()'でユーザー入力をサニタイズしないと、コードがクロスサイトスクリプティング(XSS)を許可することに注意してください。 – Honoki

+0

ちょっと試してみましたが、リソースが見つかりませんでした。エラーが表示されました。 – user1274646

1

これは、ブラウザのセキュリティ上の制限の可能性が高いです。明らかな理由から、ブラウザ内のコードはワークステーション上のローカルリソースにアクセスすることはできません(プラグインや明示的により多くの権限を付与することはできません)。

ウェブページが誰かのローカルワークステーション上のファイルにアクセスできる場合、それ以外に何ができますか?任意の他のファイルに任意にアクセスできますか?セキュリティの意味合いはかなり明確です。

Webページにアクセスするのと同じ方法でファイルを提供する必要があります。

+0

どうすれば私のdatページにアクセスすることができますか。助けてください – user1274646

+0

更新された質問を見ると、クライアント側のパスとサーバー側のパスが混乱しているようです。ページがサーバー上に存在し、クライアントによってページが表示されている場合は、クライアントに表示可能なパスをクライアントに提供する必要があります。これは、通常、Webサーバーのルート*からの相対URLまたは絶対URLの形式で行われます。クライアントはサーバーのドライブ文字などを見ることができません。したがって、@ Url.Content( "〜/ HTML/Dancing.htm") 'のようなものは、それを与えるサーバー側のパスをクライアント側のパスに変換します。レンダリングされたHTMLを見て、そのパスを確認してください。 – David

関連する問題