我们有一个项目可以生成一个代码片段,可以用于其他各种项目.代码的目的是从查询字符串中读取两个参数,并将它们分配给iframe的"src"属性.
例如,URL http://oursite/Page.aspx?a = 1&b = 2的页面中将包含JavaScript以读取"a"和"b"参数.然后,JavaScript将根据这些参数设置iframe的"src"属性.例如,""
我们目前正在使用服务器端代码执行此操作,该代码使用Microsoft的反交叉脚本库来检查参数.但是,新的要求已经表明我们需要使用JavaScript,并且它不能使用任何第三方JavaScript工具(例如jQuery或Prototype).
我知道的一种方法是在使用它们之前替换参数中的"<",单引号和双引号的任何实例,但这对我来说似乎不够安全.
其中一个参数始终是"P",后跟9个整数.另一个参数始终是15个字母数字字符.(感谢Liam建议我说清楚).
有人对我们有什么建议吗?
非常感谢您的宝贵时间.
不要使用escape和unescape,请使用decodeURIComponent.例如
function queryParameters(query) { var keyValuePairs = query.split(/[&?]/g); var params = {}; for (var i = 0, n = keyValuePairs.length; i < n; ++i) { var m = keyValuePairs[i].match(/^([^=]+)(?:=([\s\S]*))?/); if (m) { var key = decodeURIComponent(m[1]); (params[key] || (params[key] = [])).push(decodeURIComponent(m[2])); } } return params; }
并传入document.location.search.
至于转入
它不能保证参数不被欺骗.如果您需要验证其中一台服务器是否生成了URL,请搜索URL签名.