2012-04-06 19 views
6

Sayfanın içine aktarılmış bir sorgu parametresi olan temel bir html sayfam var. Request.QueryString ile değeri alabileceğimi düşündüm ama yaptığım daha fazla okuma bu sadece asp uygulamaları için görünüyor.html sayfasından sorgu dizesi/parametresine erişme

<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> 

Ben

ben yazmak zorunda kalmadan html sorgu parametrelerini erişmek için bir yol arıyordum displayPdf.htm? Yolunun = scan.pdf sayfayı arıyorum aşağıda şöyle Benim html javascript çözümü ama hiç şansı olmadı. Eminim bir js fonksiyonu eklemek çok büyük bir anlaşma olmazdı, sadece tek bir çizgi yaklaşımı olsaydı bundan kaçınacağımı düşündüm.

Yardımlarınız için teşekkürler.

cevap

8

Bu, salt HTML'de yapılamaz.

Bu JavaScript kullanarak, iki şekilde yapılabilir: (: http://jsfiddle.net/N2GUf/2/demo):

<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> 

alternatif bir yöntem, DOM kullanılarak parametre doldurma olan iki durumda da

<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> 

, sorgu dizesi location.search özelliğinden okunur ve basit bir normal ifade kullanılarak ayrıştırılır.

+0

İkinci stil neredeyse benim için çalışıyor, ancak nesne var olmadan önce javascript bloğu çağrılıyor. O zamandan sonra arayabilirsem, bu çözüm kesinlikle benim için çalışacaktır. Bu ilk önce herhangi bir değişiklik olmadan işe yaramadı. Çok teşekkürler. –

İlgili konular