我不是程序员,也没有研究与之相关的东西,只是一个想运行代码以使我的工作变得更轻松的人。
我需要打开50个标签。逐个打开需要花费大量时间,因为当我单击“打开”按钮时,它会显示新的选项卡已打开,然后我必须回到原始页面以打开下一个选项卡,依此类推。 经过一个周末的研究,我发现Google Chrome浏览器具有一个“控制台”,可以对其进行修改以使网页能够根据需要工作。
以下是在此网页中打开选项卡的代码。我已经在控制台中运行了此代码,并且令人惊讶地有效:
if(typeof jsfcljs == 'function'){
jsfcljs(document.getElementById('ngFindListForm'), {'ngFindListForm:tblDataTable:0:j_id178':'ngFindListForm:tblDataTable:1:j_id178'},'_blank');}
打开下一个标签是:
if(typeof jsfcljs == 'function'){
jsfcljs(document.getElementById('ngFindListForm'),{'ngFindListForm:tblDataTable:1:j_id178':'ngFindListForm:tblDataTable:1:j_id178'},'_blank');}
如您所见,更改的代码“唯一”部分是冒号(0和1)之间的数字。 因此,根据我的基本中学编程技能,我认为我可以使用For Loop将这些数字从0更改为49(50个标签)。我已经这样尝试过了:
for (i = 0; i < 50; i++) {
param = 'ngFindListForm:tblDataTable:' + i +':j_id178';}
然后使用以下 param 参数:
if(typeof jsfcljs == 'function'){
jsfcljs(document.getElementById('ngFindListForm'),{param:'ngFindListForm:tblDataTable:1:j_id178'},'_blank');}
但是它不起作用。它只是使我在新标签页中打开的页面相同。 也许我已经弄清楚如何进行这项工作的逻辑是完全错误的,但这就是为什么我来这里问你。
谢谢
答案 0 :(得分:0)
在foreach
内移动代码并使用[param]
(ES6)
var form = document.getElementById('ngFindListForm');
if (typeof jsfcljs == 'function') {
for (i = 0; i < 50; i++) {
var param = 'ngFindListForm:tblDataTable:' + i + ':j_id178';
jsfcljs(form, {
[param]: 'ngFindListForm:tblDataTable:1:j_id178'
}, '_blank');
}
}
OR
var form = document.getElementById('ngFindListForm');
if (typeof jsfcljs == 'function') {
for (i = 0; i < 50; i++) {
var obj = {};
obj['ngFindListForm:tblDataTable:' + i + ':j_id178'] = 'ngFindListForm:tblDataTable:1:j_id178';
jsfcljs(form, obj, '_blank');
}
}
答案 1 :(得分:0)
有几种方法可以做到,最简单的方法是使用一个对象并设置字符串
function jsfcljs(e, o, t) {
console.log(o);
}
for (let i = 0; i < 5; i++) {
var obj = {}
obj['ngFindListForm:tblDataTable:' + i + ':j_id178'] = 'ngFindListForm:tblDataTable:' + i + ':j_id178'
jsfcljs(document.getElementById('ngFindListForm'), obj, '_blank');
}
<div id="ngFindListForm"></div>