Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
eval parent.location的JavaScript错误_Javascript - Fatal编程技术网

eval parent.location的JavaScript错误

eval parent.location的JavaScript错误,javascript,Javascript,我在经典ASP。我正在使用的代码(不是我的代码)是很久以前编写的,甚至可能早在Firefox和Chrome存在之前 总之,有以下JavaScript函数: function MM_jumpMenu(targ, selObj, restore) { eval(targ + ".location ='" + selObj.options[selObj.selectedIndex].getAttribute('value') + "'"); i

我在经典ASP。我正在使用的代码(不是我的代码)是很久以前编写的,甚至可能早在Firefox和Chrome存在之前

总之,有以下JavaScript函数:

function MM_jumpMenu(targ, selObj, restore) {
    eval(targ + ".location ='" + selObj.options[selObj.selectedIndex].getAttribute('value') + "'");

    if (restore)
    {
        selObj.selectedIndex=0;
    }
}
那个代码突然停止工作了,我正试图找出原因。在Chrome中,它给了我一个错误:

SyntaxError:意外的标识符

当我尝试运行代码时,传入的参数如下:

target=“父级”

所选selObj索引上的值=“编辑_details.asp?make=ML&n=&r=DA61CHH&c=Hope预拌混凝土有限公司-CHY-LCV's&cus=HOPEAG02&type=&inc=&id=&fw=&cusid=HOPE03”

恢复=0


假设代码是专为IE 6/7编写的,我们正在尝试标准化并使其适用于所有浏览器。

您的url中有一个未替换的单引号

CHY LCV's&
请注意:

CHY LCV\'s&

但实际上,这段代码很糟糕,如果可以的话,你应该重写它。

你的url中有一个未替换的单引号

CHY LCV's&
请注意:

CHY LCV\'s&

但实际上,这段代码很可怕,如果可以的话,你应该重写它。

eval是邪恶的!!不要用它

window[targ].location = selObj.options[selObj.selectedIndex].getAttribute('value');

eval
是邪恶的!!不要用它

window[targ].location = selObj.options[selObj.selectedIndex].getAttribute('value');

“selObj选定索引上的值”:它有一个撇号。您需要对其进行转义。

“selObj的选定索引上的值”:它有一个撇号。您需要避开它。

我很确定,如果您记录您试图评估的字符串,这将是显而易见的。不要使用eval。我敢肯定,如果您记录要评估的字符串,这将是显而易见的。不要使用eval。这样不行,
targ
包含应更新的变量名称。也许
window[target]=…
对。在这种情况下甚至不需要它。我收回这句话:-)这很有效!非常感谢。那次评估到底是为了什么!好吧,假设您不知道要使用的接线员。在这些情况下,eval还有其他选择,比如JQuery的globalEval。但在某些情况下,它也会在内部使用eval,AFAIK@Paddy:
globalEval
eval
相比并不安全。这是一样的。这不起作用,
targ
包含应该更新的变量的名称。也许
window[target]=…
对。在这种情况下甚至不需要它。我收回这句话:-)这很有效!非常感谢。那次评估到底是为了什么!好吧,假设您不知道要使用的接线员。在这些情况下,eval还有其他选择,比如JQuery的globalEval。但在某些情况下,它也会在内部使用eval,AFAIK@Paddy:
globalEval
eval
相比并不安全。都一样,很好!你能告诉我怎么做吗:)你能试试奥利奥的溶液吗。这以更好的方式解决了问题。否则,可以用相应的url编码(';)替换撇号。JS有一个转义函数,但在这种情况下不起作用。很好!你能告诉我怎么做吗:)你能试试奥利奥的溶液吗。这以更好的方式解决了问题。否则,可以用相应的url编码(';)替换撇号。JS有一个转义函数,但在这种情况下不起作用。