Window.Open()错误地转义了吗?

时间:2011-06-07 15:46:24

标签: javascript parameters escaping window.open

我是一个相对轻松的JavaScript用户,所以这个小操作给了我一些重大的悲伤 - 我确定我错过了一些东西。

我想要的只是一个打开的弹出窗口,将一个值 - emplogin,一个名为getEmp的字符串变量 - 传递给沼泽标准的.php页面:

<script type="text/javascript">
function getEmployeeInfo(getEmp)
{
window.open ("../Pages/Employee_Info.php?emplogin=" + getEmp + ",\"mywin\",\"menubar=0,resizable=1,scrollbars=1,width=600,height=450\"");
}
</script>

它有效......有点儿。通过查看生成的$ _REQUEST对象来测试结果,向我显示该页面正在接收$ emplogin

Array
(
    [emplogin] =>JohnDoe,"mywin","menubar=0,resizable=1,scrollbars=1,width=600,height=450"
)

IOW,Window.Open()的第二个和第三个参数作为PHP收到的$ emplogin的一部分传递,而不是被JavaScript解析! (我正在使用'echo htmlspecialchars(print_r($ _ REQUEST,true));')

我确信有些东西我没有正确处理参数的转移,但我无法找到正确的搜索条件。感谢您的任何指导!

4 个答案:

答案 0 :(得分:3)

试试这个:

<script type="text/javascript">
function getEmployeeInfo(getEmp)
{
    window.open ("../Pages/Employee_Info.php?emplogin=" + getEmp, "mywin", "menubar=0,resizable=1,scrollbars=1,width=600,height=450");
}
</script>

答案 1 :(得分:1)

您将第二个和第三个参数作为URL字符串的一部分包含在内,因此它们都被视为一个参数。

你想要的是: window.open ("../Pages/Employee_Info.php?emplogin=" + getEmp,"mywin","menubar=0,resizable=1,scrollbars=1,width=600,height=450");

答案 2 :(得分:0)

应该是这样的:

<script type="text/javascript">
function getEmployeeInfo(getEmp)
{
window.open ("../Pages/Employee_Info.php?emplogin=" + getEmp + ,"mywin","menubar=0,resizable=1,scrollbars=1,width=600,height=450");
}
</script>

答案 3 :(得分:0)

对你的变量进行urlencode并在open命令中删除其他参数的转义