Эта функция не выполняет никакого анализа, но вместо этого объявляет свой собственный window.location.href
, уничтожает данный код, поэтому onclick
становится определенной функцией в рамках этой функции, запускает ее, поэтому наш local window.location.href
обновляется, а затем возвращает его. Предполагается, что содержимое строки известно , безопасно и похоже на то, что вы уже дали.
function extractURL(code) {
var window = { location: { href: '' } };
eval(code);
onclick();
return window.location.href;
}
Пример использования,
var fn = 'function onclick(event) { window.location.href = "index.html?q1=v1&g2=v2"; }';
extractURL(fn); // "index.html?q1=v1&g2=v2"