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);

不是很优雅,但可以完成工作