【问题标题】:Accessing query string/parameter from html page从 html 页面访问查询字符串/参数
【发布时间】:2012-04-06 12:21:08
【问题描述】:

我有一个基本的 html 页面,其中有一个查询参数被传递给页面。我以为我可以使用 Request.QueryString 获得值,但我正在做的更多阅读似乎仅适用于 asp 应用程序。我的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?path=scan.pdf 调用页面

我一直在寻找一种无需编写 javascript 解决方案即可访问 html 中的查询参数的方法,但没有任何运气。我确信添加一个 js 函数不会有太大的问题,只是认为如果有单行方法我会避免它。

感谢您的帮助。

【问题讨论】:

    标签: html query-string


    【解决方案1】:

    这不能在纯 HTML 中完成。

    这可以通过两种方式完成,使用 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>
    

    另一种方法是使用 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 属性中读取的,并使用简单的正则表达式进行解析。

    【讨论】:

    • 第二种样式几乎对我有用,但在对象存在之前调用了 javascript 块。如果我可以在之后调用它,那么这个解决方案肯定对我有用。不过,这首先确实有效,但没有任何更改。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多