我在Classic 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:意外的标识符
当我尝试运行代码时,传入的参数如下:
targ =“父母”
选择的selObj指数的值 =“edit_details.asp?make = ML& n =& r = DA61CHH& c = Hope Ready Mixed Concrete Ltd - CHY LCV& cus = HOPEAG02& type =&安培; INC =和ID =安培; FW =&安培; cusid = HOPE03"
恢复 = 0
假设代码仅针对IE 6/7编写,我们正在尝试标准化并使其适用于所有浏览器。
答案 0 :(得分:3)
eval
是邪恶的!不要使用它!
window[targ].location = selObj.options[selObj.selectedIndex].getAttribute('value');
答案 1 :(得分:1)
您的网址中有一个未转义的单引号。
CHY LCV's&
Espace this:
CHY LCV\'s&
但实际上,这段代码太可怕了,如果可以,你应该重写它。
答案 2 :(得分:0)
"选择的selObj索引的值" :它有一个撇号。你需要逃脱它。