无法读取 属性 'value' of null - Greasemonkey 脚本
Cannot read property 'value' of null - Greasemonkey Script
如果我在我的代码中做了一些愚蠢的事情,请原谅我,我从来没有被展示如何做 javascript/jquery 并且一直在使用来自 google 搜索的其他代码,我通常只是做 shell 脚本和 vb.net。所以把我当作一个完全的初学者。
我正在编写 Greasemonkey/Tampermonkey 脚本来替换 Service-Now 中的文本。它基本上在用户注释中查找诸如 INC 或 FNAME 之类的标签,然后将它们替换为包含该数据的 service-now 字段。基本上它允许使用信息快速自动填充模板。
我 运行 遇到了脚本问题,每当我单击按钮填写标签时,我都会在 Chrome 的控制台中显示错误
Uncaught TypeError: Cannot read property 'value' of null
at HTMLInputElement.eval (eval at E_c (:3:114), <anonymous>:46:88)
at HTMLInputElement.dispatch (eval at E_c (:3:114), <anonymous>:7:8436)
at HTMLInputElement.r.handle (eval at E_c (:3:114), <anonymous>:7:5139)
从之前的帖子中,我确保在页面完成后加载 // @运行-at document-idle
这是我当前的代码,部分代码已更改以隐藏我工作的地方。
// ==UserScript==
// @name Templates Plus v2
// @namespace https://MYSITE.service-now.com/*
// @include https://MYSITE.service-now.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// @run-at document-idle
// @version 1
// @grant GM_addStyle
// ==/UserScript==
(function() {
var add='';
var buttonElems;
switch(i){
case 0:
buttonElems = document.getElementById('label.incident.work_notes');
break;
case 1:
buttonElems = document.getElementById('ni.incident.u_fcr').parentElement;
//var buttonElems = document.getElementById('incident.form_header');
break;
}
add = add + '<input id="tpbutton" type="button" value="Template Plus" class="form_action_button">'; //Template Plus Button
buttonElems.innerHTML = buttonElems.innerHTML + add;
$("#tpbutton").click(function(){
var TemplatePlus_f_AdditionalComments = document.getElementById("incident.comments")[0];
var TemplatePlus_f_WorknotesComments = document.getElementById("incident.work_notes")[0];
var TemplatePlus_f_ShortDescription = document.getElementById("incident.short_description")[0];
var TemplatePlus_f_Resolution = document.getElementById("incident.close_notes")[0];
var TemplatePlus_FirstName=(" ");
var TemplatePlus_LastName=(" ");
var TemplatePlus_MidName=(" ");
var TemplatePlus_UserID=(" ");
var TemplatePlus_UserEmail = document.getElementById("sys_readonly.incident.caller_id.email").value;
var TemplatePlus_Company = document.getElementById("sys_display.incident.company").value;
var TemplatePlus_Location = document.getElementById("sys_display.incident.location").value;
var TemplatePlus_Callback = document.getElementById("incident.u_call_back_number").value;
var TemplatePlus_Name = document.getElementById("sys_display.incident.caller_id").value;
var TemplatePlus_ConfigItem = document.getElementById("sys_display.incident.cmdb_ci").value;
var TemplatePlus_INC = document.getElementById("sys_readonly.incident.number").value;
var TemplatePlus_ATo = document.getElementById("sys_display.incident.assigned_to").value;
TemplatePlus_FirstName.value=TemplatePlus_Name.substr(TemplatePlus_Name.indexOf(',')+1);
TemplatePlus_LastName.value=TemplatePlus_Name.substr(0,TemplatePlus_Name.indexOf(','));
TemplatePlus_MidName.value=TemplatePlus_Name.substr(TemplatePlus_Name.indexOf(' ')+1);
TemplatePlus_UserID.value=TemplatePlus_LastName.substr(0,6)+TemplatePlus_FirstName.substr(0,1)+TemplatePlus_MidName.substr(0,1);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<COMPANY>",TemplatePlus_Company);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<INC>",TemplatePlus_INC);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<COMPANY>",TemplatePlus_Company);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<INC>",TemplatePlus_INC);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<COMPANY>",TemplatePlus_Company);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<INC>",TemplatePlus_INC);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<COMPANY>",TemplatePlus_Company);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<INC>",TemplatePlus_INC);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<CONFIGITEM>",TemplatePlus_ConfigItem);
});
})();
此代码的一部分基于一个朋友在我以前工作的另一个地方写的代码,现在也使用服务,他的脚本在他们的页面上运行良好,但在我们的页面上根本不会 运行。
我不确定是什么导致了问题,单击按钮时读取 caller/incident 数字或其他任何值的代码不应该 运行ning 直到按钮单击并且到那时,它检索到的所有值都应该在那个时候可用。
根据上面的回复,我能够按照 wOxxOm 的建议调试代码并解决问题,归结为从四个变量中删除 [0],然后由于并非所有变量都在 [=15= 中可见] 我必须先显示变量,然后再单击按钮。我在显示按钮时也遇到了问题,所以现在我有一个临时修复程序,可以将它推到右上角。
我将 post 下面的工作代码。
// ==UserScript==
// @name Templates Plus v2
// @namespace https://MYSITE.service-now.com/*
// @include https://MYSITE.service-now.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// @run-at document-end
// @version 1
// @grant GM_addStyle
// ==/UserScript==
(function() {
var tpbutton = document.createElement("Button");
tpbutton.innerHTML = "TemplatePlus";
tpbutton.style = "top:0;right:0;position:absolute;z-index: 10";
tpbutton.id="tpbutton";
document.body.appendChild(tpbutton);
$("#tpbutton").click(function(){
var TemplatePlus_f_AdditionalComments = document.getElementById("incident.comments");
var TemplatePlus_f_WorknotesComments = document.getElementById("incident.work_notes");
var TemplatePlus_f_ShortDescription = document.getElementById("incident.short_description");
var TemplatePlus_f_Resolution = document.getElementById("incident.close_notes");
var TemplatePlus_FirstName=(" ");
var TemplatePlus_LastName=(" ");
var TemplatePlus_Name=(" ");
var TemplatePlus_UserID=(" ");
var TemplatePlus_UserEmail=(" ");
var TemplatePlus_Location=(" ");
var TemplatePlus_Callback=(" ");
var TemplatePlus_ConfigItem=(" ");
var TemplatePlus_INC=(" ");
var TemplatePlus_ATo=(" ");
TemplatePlus_INC = document.getElementById("sys_readonly.incident.number").value;
TemplatePlus_FirstName=document.getElementById("sys_readonly.sys_user.first_name").value;
TemplatePlus_LastName=document.getElementById("sys_readonly.sys_user.last_name").value;
TemplatePlus_UserID=document.getElementById("sys_readonly.sys_user.user_name").value;
TemplatePlus_Name=document.getElementById("sys_readonly.sys_user.name").value;
TemplatePlus_Callback=document.getElementById("sys_readonly.sys_user.phone").value;
TemplatePlus_UserEmail=document.getElementById("sys_readonly.sys_user.email").value;
TemplatePlus_Location=document.getElementById("sys_user.location_label").value;
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<INC>",TemplatePlus_INC);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<INC>",TemplatePlus_INC);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<INC>",TemplatePlus_INC);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<INC>",TemplatePlus_INC);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<CONFIGITEM>",TemplatePlus_ConfigItem);
});
})();
如果我在我的代码中做了一些愚蠢的事情,请原谅我,我从来没有被展示如何做 javascript/jquery 并且一直在使用来自 google 搜索的其他代码,我通常只是做 shell 脚本和 vb.net。所以把我当作一个完全的初学者。
我正在编写 Greasemonkey/Tampermonkey 脚本来替换 Service-Now 中的文本。它基本上在用户注释中查找诸如 INC 或 FNAME 之类的标签,然后将它们替换为包含该数据的 service-now 字段。基本上它允许使用信息快速自动填充模板。
我 运行 遇到了脚本问题,每当我单击按钮填写标签时,我都会在 Chrome 的控制台中显示错误
Uncaught TypeError: Cannot read property 'value' of null
at HTMLInputElement.eval (eval at E_c (:3:114), <anonymous>:46:88)
at HTMLInputElement.dispatch (eval at E_c (:3:114), <anonymous>:7:8436)
at HTMLInputElement.r.handle (eval at E_c (:3:114), <anonymous>:7:5139)
从之前的帖子中,我确保在页面完成后加载 // @运行-at document-idle
这是我当前的代码,部分代码已更改以隐藏我工作的地方。
// ==UserScript==
// @name Templates Plus v2
// @namespace https://MYSITE.service-now.com/*
// @include https://MYSITE.service-now.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// @run-at document-idle
// @version 1
// @grant GM_addStyle
// ==/UserScript==
(function() {
var add='';
var buttonElems;
switch(i){
case 0:
buttonElems = document.getElementById('label.incident.work_notes');
break;
case 1:
buttonElems = document.getElementById('ni.incident.u_fcr').parentElement;
//var buttonElems = document.getElementById('incident.form_header');
break;
}
add = add + '<input id="tpbutton" type="button" value="Template Plus" class="form_action_button">'; //Template Plus Button
buttonElems.innerHTML = buttonElems.innerHTML + add;
$("#tpbutton").click(function(){
var TemplatePlus_f_AdditionalComments = document.getElementById("incident.comments")[0];
var TemplatePlus_f_WorknotesComments = document.getElementById("incident.work_notes")[0];
var TemplatePlus_f_ShortDescription = document.getElementById("incident.short_description")[0];
var TemplatePlus_f_Resolution = document.getElementById("incident.close_notes")[0];
var TemplatePlus_FirstName=(" ");
var TemplatePlus_LastName=(" ");
var TemplatePlus_MidName=(" ");
var TemplatePlus_UserID=(" ");
var TemplatePlus_UserEmail = document.getElementById("sys_readonly.incident.caller_id.email").value;
var TemplatePlus_Company = document.getElementById("sys_display.incident.company").value;
var TemplatePlus_Location = document.getElementById("sys_display.incident.location").value;
var TemplatePlus_Callback = document.getElementById("incident.u_call_back_number").value;
var TemplatePlus_Name = document.getElementById("sys_display.incident.caller_id").value;
var TemplatePlus_ConfigItem = document.getElementById("sys_display.incident.cmdb_ci").value;
var TemplatePlus_INC = document.getElementById("sys_readonly.incident.number").value;
var TemplatePlus_ATo = document.getElementById("sys_display.incident.assigned_to").value;
TemplatePlus_FirstName.value=TemplatePlus_Name.substr(TemplatePlus_Name.indexOf(',')+1);
TemplatePlus_LastName.value=TemplatePlus_Name.substr(0,TemplatePlus_Name.indexOf(','));
TemplatePlus_MidName.value=TemplatePlus_Name.substr(TemplatePlus_Name.indexOf(' ')+1);
TemplatePlus_UserID.value=TemplatePlus_LastName.substr(0,6)+TemplatePlus_FirstName.substr(0,1)+TemplatePlus_MidName.substr(0,1);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<COMPANY>",TemplatePlus_Company);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<INC>",TemplatePlus_INC);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replaceAll("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<COMPANY>",TemplatePlus_Company);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<INC>",TemplatePlus_INC);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replaceAll("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<COMPANY>",TemplatePlus_Company);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<INC>",TemplatePlus_INC);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replaceAll("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<COMPANY>",TemplatePlus_Company);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<INC>",TemplatePlus_INC);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replaceAll("<CONFIGITEM>",TemplatePlus_ConfigItem);
});
})();
此代码的一部分基于一个朋友在我以前工作的另一个地方写的代码,现在也使用服务,他的脚本在他们的页面上运行良好,但在我们的页面上根本不会 运行。
我不确定是什么导致了问题,单击按钮时读取 caller/incident 数字或其他任何值的代码不应该 运行ning 直到按钮单击并且到那时,它检索到的所有值都应该在那个时候可用。
根据上面的回复,我能够按照 wOxxOm 的建议调试代码并解决问题,归结为从四个变量中删除 [0],然后由于并非所有变量都在 [=15= 中可见] 我必须先显示变量,然后再单击按钮。我在显示按钮时也遇到了问题,所以现在我有一个临时修复程序,可以将它推到右上角。
我将 post 下面的工作代码。
// ==UserScript==
// @name Templates Plus v2
// @namespace https://MYSITE.service-now.com/*
// @include https://MYSITE.service-now.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// @run-at document-end
// @version 1
// @grant GM_addStyle
// ==/UserScript==
(function() {
var tpbutton = document.createElement("Button");
tpbutton.innerHTML = "TemplatePlus";
tpbutton.style = "top:0;right:0;position:absolute;z-index: 10";
tpbutton.id="tpbutton";
document.body.appendChild(tpbutton);
$("#tpbutton").click(function(){
var TemplatePlus_f_AdditionalComments = document.getElementById("incident.comments");
var TemplatePlus_f_WorknotesComments = document.getElementById("incident.work_notes");
var TemplatePlus_f_ShortDescription = document.getElementById("incident.short_description");
var TemplatePlus_f_Resolution = document.getElementById("incident.close_notes");
var TemplatePlus_FirstName=(" ");
var TemplatePlus_LastName=(" ");
var TemplatePlus_Name=(" ");
var TemplatePlus_UserID=(" ");
var TemplatePlus_UserEmail=(" ");
var TemplatePlus_Location=(" ");
var TemplatePlus_Callback=(" ");
var TemplatePlus_ConfigItem=(" ");
var TemplatePlus_INC=(" ");
var TemplatePlus_ATo=(" ");
TemplatePlus_INC = document.getElementById("sys_readonly.incident.number").value;
TemplatePlus_FirstName=document.getElementById("sys_readonly.sys_user.first_name").value;
TemplatePlus_LastName=document.getElementById("sys_readonly.sys_user.last_name").value;
TemplatePlus_UserID=document.getElementById("sys_readonly.sys_user.user_name").value;
TemplatePlus_Name=document.getElementById("sys_readonly.sys_user.name").value;
TemplatePlus_Callback=document.getElementById("sys_readonly.sys_user.phone").value;
TemplatePlus_UserEmail=document.getElementById("sys_readonly.sys_user.email").value;
TemplatePlus_Location=document.getElementById("sys_user.location_label").value;
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<INC>",TemplatePlus_INC);
TemplatePlus_f_AdditionalComments.value=TemplatePlus_f_AdditionalComments.value.replace("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<INC>",TemplatePlus_INC);
TemplatePlus_f_WorknotesComments.value=TemplatePlus_f_WorknotesComments.value.replace("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<INC>",TemplatePlus_INC);
TemplatePlus_f_ShortDescription.value=TemplatePlus_f_ShortDescription.value.replace("<CONFIGITEM>",TemplatePlus_ConfigItem);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<SDESC>",TemplatePlus_f_ShortDescription.value);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<FNAME>",TemplatePlus_FirstName);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<LNAME>",TemplatePlus_LastName);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<UNAME>",TemplatePlus_UserID);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<EMAIL>",TemplatePlus_UserEmail);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<CALL>",TemplatePlus_Callback);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<INC>",TemplatePlus_INC);
TemplatePlus_f_Resolution.value=TemplatePlus_f_Resolution.value.replace("<CONFIGITEM>",TemplatePlus_ConfigItem);
});
})();