2012-04-06 8 views
6

私は、ページに渡されるクエリパラメータを持つ基本的なhtmlページを持っています。私はRequest.QueryStringで値を取得できると思っていましたが、これはaspアプリケーションのためだけであるように私はやっている読んでいる。私のHTMLは、私が記述しなくてもHTMLでクエリパラメータにアクセスする方法を探してきたhtmlページからのクエリ文字列/パラメータへのアクセス

<body> 
    <object type="application/pdf" width="100%" height="100%"> 
     <!--This didn't work--> 
     <param name="src" value="<%=Request.QueryString["path"]%>" /> 
     <!--Neither did this--> 
     <!--<param name="src" value="<%=Request.Params["path"]%>" />--> 
     <!--When it is hardcoded then my page is displaying the pdf as expected.--> 
     <!--<param name="src" value="scan.pdf" />--> 
    </object> 
</body> 

の下に次のように私はdisplayPdf.htmでページを呼び出すのですか?パス= scan.pdf

ですjavascriptの解決策はありませんでしたが、運がなかった。私はjs関数を追加することはあまりにも大きすぎることはないと確信しています。単線アプローチがあれば避けたいと思っていました。

ありがとうございました。

答えて

8

これは、純粋なHTMLでは実行できません。

これはJavaScriptを使用して、2つの方法で行うことができる。

<body><script> 
var param = /[&?]path=([^&]+)/.exec(location.search); 
param = param ? param[1].replace(/"/g, '&quot;') : ''; 
document.write('<object type="application/pdf" width="100%" height="100%">\n' + 
    '<param name="src" value="' + param + '" />\n</object>'); 
</script></body> 

別の方法は、DOM(デモ:http://jsfiddle.net/N2GUf/2/):使用してパラメータを移入されたいずれの場合においても

<body><object type="application/pdf" width="100%" height="100%"> 
    <param name="src" value="" id="param-path" /> 
</object> 
<script> 
var param = /[&?]path=([^&]+)/.exec(location.search); 
if (param) 
    document.getElementById('param-path').value = param[1]; 
</script>​</body> 

をクエリ文字列はlocation.searchプロパティから読み込まれ、単純な正規表現を使用して解析されます。

+0

第2のスタイルはほとんど私のために働くが、オブジェクトが存在する前にjavascriptブロックが呼び出されている。私がそれを呼ぶことができれば、この解決策は確かに私のために働くだろう。これは最初の変更なしで動作しました。どうもありがとう。 –

関連する問題