Firefox 插件,Javascript 未填写 <input>
Firefox-Addon, Javascript doesn't fill <input>
我正在开发一个插件,它可以通过在表单中填写一些字段来加快工作流程
我成功地打开了 NewBrowser 选项卡并填写了大部分数据,主要是因为某些原因 <input>
类型没有填写,而选择和文本区域没有问题。
我对所有元素都使用 getElementsByName,因为它们有名称,但没有 ID -.-'
示例代码:
//Set "Title" to sever name that was highlighted on rightclick
var title = document.getElementsByName("title");
title[0].value="asd";
var addProbDet = document.getElementsByName("UDF595610900");
addProbDet[0].value = "Additional Problem Details HERE!!!";
//Set "Category of Work-SubCategory" to "OS[Other]"
var workSubCat = document.getElementsByName("UDF654060815");
workSubCat[0].value = "734918941";
//Set "Work Queue" to "SYSHOSTING-UNIX [SOLARIS SYS ADMIN]"
var workQ = document.getElementsByName("UDF581036117");
workQ[0].value = "1156820601";
HTML:
<td id="panelCol1_1" width="50%">
<table class="infoPanels" width="100%">
<tbody>
<tr>
<td class="editCellTitle">
<nobr>
Title
<img src="/v/B_1992_1992/image/requiredCheck.gif">
</nobr>
<br>
<nobr>
<input class="txt" type="text" onfocus="prompt("Enter a title for this request")" maxlength="80" size="32" name="title" tabindex="1">
</nobr>
</td>
</tr>
<tr></tr>
<tr></tr>
<tr>
<td class="editCellTitle">
<nobr></nobr>
<br></br>
<nobr>
<select onfocus="prompt("")" tabindex="4" size="1" name="UDF654060815"></select>
</nobr>
</td>
</tr>
<tr>
<td class="editCellTitle">
<nobr></nobr>
<br></br>
<nobr>
<select onfocus="prompt("")" tabindex="5" size="1" name="UDF581036117"></select>
</nobr>
所以上面的代码填充了第一个和两个。
并且由于某种原因未设置输入值。
代码在事件监听器中:
var baseUrl = this.optickBaseUrl + this.optickParams;
var newTab = gBrowser.addTab(baseUrl)
gBrowser.selectedTab =newTab;
var newTabBrowser = gBrowser.getBrowserForTab(newTab);
newTabBrowser.addEventListener("load", function () {
如果我转到该页面并将此函数的主体粘贴到控制台,一切都会很好地填充。
似乎有一个脚本在 'load' 事件上执行某些操作,所以我只是将输入字段中的值更改延迟了 500 毫秒
setTimeout(function(){
//Set "Title" to sever name that was highlighted on rightclick
var title = document.getElementsByName("title");
title[0].value=selectedText;
}, 500);
不是很优雅,但可以完成工作
我正在开发一个插件,它可以通过在表单中填写一些字段来加快工作流程
我成功地打开了 NewBrowser 选项卡并填写了大部分数据,主要是因为某些原因 <input>
类型没有填写,而选择和文本区域没有问题。
我对所有元素都使用 getElementsByName,因为它们有名称,但没有 ID -.-'
示例代码:
//Set "Title" to sever name that was highlighted on rightclick
var title = document.getElementsByName("title");
title[0].value="asd";
var addProbDet = document.getElementsByName("UDF595610900");
addProbDet[0].value = "Additional Problem Details HERE!!!";
//Set "Category of Work-SubCategory" to "OS[Other]"
var workSubCat = document.getElementsByName("UDF654060815");
workSubCat[0].value = "734918941";
//Set "Work Queue" to "SYSHOSTING-UNIX [SOLARIS SYS ADMIN]"
var workQ = document.getElementsByName("UDF581036117");
workQ[0].value = "1156820601";
HTML:
<td id="panelCol1_1" width="50%">
<table class="infoPanels" width="100%">
<tbody>
<tr>
<td class="editCellTitle">
<nobr>
Title
<img src="/v/B_1992_1992/image/requiredCheck.gif">
</nobr>
<br>
<nobr>
<input class="txt" type="text" onfocus="prompt("Enter a title for this request")" maxlength="80" size="32" name="title" tabindex="1">
</nobr>
</td>
</tr>
<tr></tr>
<tr></tr>
<tr>
<td class="editCellTitle">
<nobr></nobr>
<br></br>
<nobr>
<select onfocus="prompt("")" tabindex="4" size="1" name="UDF654060815"></select>
</nobr>
</td>
</tr>
<tr>
<td class="editCellTitle">
<nobr></nobr>
<br></br>
<nobr>
<select onfocus="prompt("")" tabindex="5" size="1" name="UDF581036117"></select>
</nobr>
所以上面的代码填充了第一个和两个。
并且由于某种原因未设置输入值。
代码在事件监听器中:
var baseUrl = this.optickBaseUrl + this.optickParams;
var newTab = gBrowser.addTab(baseUrl)
gBrowser.selectedTab =newTab;
var newTabBrowser = gBrowser.getBrowserForTab(newTab);
newTabBrowser.addEventListener("load", function () {
如果我转到该页面并将此函数的主体粘贴到控制台,一切都会很好地填充。
似乎有一个脚本在 'load' 事件上执行某些操作,所以我只是将输入字段中的值更改延迟了 500 毫秒
setTimeout(function(){
//Set "Title" to sever name that was highlighted on rightclick
var title = document.getElementsByName("title");
title[0].value=selectedText;
}, 500);
不是很优雅,但可以完成工作