2012-04-06 45 views
6

Tôi có một trang html cơ bản có tham số truy vấn được chuyển đến trang. Tôi nghĩ rằng tôi sẽ có thể nhận được giá trị với Request.QueryString nhưng đọc thêm tôi đang làm có vẻ như điều này chỉ dành cho các ứng dụng asp. html của tôi là như sau dướiTruy cập chuỗi/tham số truy vấn từ trang 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> 

tôi kêu gọi trang với displayPdf.htm? path = scan.pdf

Tôi đã tìm kiếm một cách để truy cập các thông số truy vấn trong html mà không cần phải viết một giải pháp javascript nhưng chưa có may mắn. Tôi chắc chắn rằng việc thêm một chức năng js sẽ không phải là một thỏa thuận quá lớn chỉ nghĩ rằng tôi sẽ tránh nó nếu có một cách tiếp cận dòng duy nhất.

Cảm ơn sự giúp đỡ.

Trả lời

8

Điều này không thể thực hiện bằng HTML thuần túy.

này có thể được thực hiện theo hai cách khác nhau, sử dụng JavaScript:

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

Một phương pháp khác được Populating tham số sử dụng DOM (demo: 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> 

Trong cả hai trường hợp, chuỗi truy vấn được đọc từ thuộc tính location.search và được phân tích cú pháp bằng cách sử dụng cụm từ thông dụng đơn giản.

+0

Kiểu thứ hai gần như hoạt động đối với tôi nhưng khối javascript được gọi trước khi đối tượng tồn tại. Nếu tôi có thể gọi nó sau đó giải pháp này chắc chắn sẽ làm việc cho tôi. Điều này đầu tiên đã làm việc mà không có bất kỳ thay đổi mặc dù. Cảm ơn rất nhiều. –

Các vấn đề liên quan