gpt4 book ai didi

javascript - Google 脚本 : Javascript function window. 打开在某些情况下不起作用

转载 作者:行者123 更新时间:2023-12-03 01:49:05 25 4
gpt4 key购买 nike

我正在通过 Google 脚本进行工作。

我目前有一个脚本,如果您单击一个框,它应该打开一个新选项卡,其中包含从电子表格中提取的 URL。

脚本正确提取了正确的 URL:

var url = mainObj[i].link;

以下脚本打开正确的 URL。

arr[i].onclick = function open() {window.open("https://drive.google.com/drive/my-drive", "_blank") }; 

因此,如果我将 URL 硬编码到脚本中,window.open 似乎可以正常工作。但是,我正在从电子表格中提取数据,因此我使用 for 循环迭代此函数。

所以,如果我尝试这样做:

arr[i].onclick = function open() {window.open(mainObj[i].link, "_blank") };

甚至

var url = mainObj[i].link;
arr[i].onclick = function open() {window.open(url, "_blank") };

...这两种情况都会给我一个 400 错误。有什么不同?

编辑:我认为这是因为当前变量 url 没有双引号,但是当我执行以下操作时,错误仍然存​​在。

var url = '"' + mainObj[i].link + '"';
console.log(url);
arr[i].onclick = function open() {window.open(url, "_blank") };

最佳答案

如果在循环中,“i”索引在 onclick 函数中设置时不会保存,则需要将其封装在匿名函数中并将“i”传递给该函数

for(var i = 0; i < arr.length; i++){
(function(i){
arr[i].onclick = function open() {window.open(mainObj[i].link, "_blank") };
})(i);
}

你可以在这里看到一个例子,第一个函数所有按钮都获得相同的 onclick,第二个函数是固定的: https://jsfiddle.net/angelmarde/5gegt2o6/

关于javascript - Google 脚本 : Javascript function window. 打开在某些情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50497558/

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