javascript中“预期':'”错误的未知原因

时间:2015-04-15 15:35:19

标签: javascript

我在我的网站中定义了以下功能。它适用于某些人,而不适用于其他人。该方法的最后一行发生异常,其中串联是。我相信,因为指定查询字符串的url的问号字符被视为三元运算符。

这里有什么东西我没看到,还是有更好的方法来构建这个字符串?

url变量的值为:" mywebpage.aspx?AccountNumber = 123456"

function popUp(url) {
    var myleft = (screen.width) ? (screen.width - 750) / 2 : 100;
    var   mytop = (screen.height) ? (screen.height - 300) / 2 : 100;
    var id = new Date().getTime();

    eval("page" + id + " = window.open(" + url + ", '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=900,height=325, top='" + mytop + "',left='" + myleft +");");
}

3 个答案:

答案 0 :(得分:11)

通过避免eval()

,您将消除“引号内的引号”问题
window["page" + id] =
    window.open(url, id, 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=900,height=325, top=' + mytop + ',left=' + myleft);

您还应确保使用“id”值作为有效标识符(具体以非数字字符开头),否则Internet Explorer将抛出错误。

答案 1 :(得分:3)

您是否尝试在关闭之前和之后放置单引号并在url变量周围打开双引号?像这样的东西:

 ..." = window.open('" + url + "',... 

答案 2 :(得分:0)

使用encodeURIComponent(url)而不是window.open

中使用纯网址

此功能可对特殊字符进行编码。另外,它编码以下字符:,/? :@& = + $#

更多信息here