使用XMLHttpRequest与现有源进行POST

时间:2011-08-30 13:34:40

标签: javascript http google-chrome-extension xmlhttprequest

我只想使用XMLHttpRequest尝试做的是:

  • 该脚本会下载一个只有一个表单的网页。
  • 脚本将文本插入字段。
  • 脚本提交表单,同时保留有关输入标记的所有详细信息。

我做了第一部分,但我不知道如何完成接下来的两个步骤。

注意:我无法控制下载的页面,而且格式不正确的XML / HTML。

有人可以向我解释如何完成这项工作吗?

这适用于Google Chrome扩展程序,因此我需要所有权限。

编辑:这是我目前的代码:

$.ajax({ url: "http://www.mysite.com/my/testpage.aspx",
        type: "POST",
        data: {
        html: http0.responseText.between("<body>", "</body>")
              },
        success: function(data) {
            var dom = $(data),
            form = dom.filter('form');
            form.attr('onsubmit', 'document.getElementById("error").value = "I\'m done!"; document.getElementById("helpmebutton").disabled = false;');
            form.attr('action', 'http://www.mysite.com/my/testpage.aspx');
            $('#tempdiv').append(form);
            form.find('input[name="ctl00$ctl00$cphSite$cphMySiteContent$linkLocation"]').val(document.getElementById("result").value);
            form.submit();
        }
    });

1 个答案:

答案 0 :(得分:1)

我真的会使用jQuery来节省时间和头痛。

创建一个标识为div的临时tempdiv,并将所有内容放入div。然后,填写适当的元素并提交表单,如下所示:

$.ajax({ url: "http://...",
         success: function(data) {
             var dom = $(data),
                 form = dom.filter('form');

             $('#tempdiv').append(form);

             form.find('input:text').val(123);
             // all input[type=text] get value 123

             form.submit();
         }
});