gpt4 book ai didi

javascript - setTimeout使用问题

转载 作者:行者123 更新时间:2023-11-28 11:07:52 24 4
gpt4 key购买 nike

我有以下 JavaScript,并且在使用 setTimeout 时遇到问题,即:

function setUrl()
{
// Get system URL details
var url_path = new String(window.location.pathname);

var new_url;

new_url = window.location.host;
}
setTimeout("setValue('ONE_UP_URL',new_url);",2000);
}

但由于某种原因,我收到错误:“new_url”未定义。

如何使用 setTimeout 调用此函数?

最佳答案

不要使用字符串作为 setTimeout 函数调用的第一个参数,使用匿名函数。

您还有一个额外的大括号:

function setUrl() {
// Get system URL details
var url_path = window.location.pathname,
new_url = window.location.host;

setTimeout(function () {
setValue('ONE_UP_URL',new_url);
}, 2000);
}

如果您使用字符串,它将被评估,但实际上并不是 recommended .

使用 eval 评估代码(及其亲属 FunctionsetTimeoutsetInterval )被认为是危险的,因为它们会以调用者的权限执行您传递的代码,并且几乎所有时候都有解决方法来避免它们。

其他小事情:

  • 代码中对 String 构造函数的调用是多余的,因为 window.location.pathname 已经是一个字符串。
  • 您可以在 single var 上声明函数变量声明。

关于javascript - setTimeout使用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com