开发者

POST using XMLHttpRequest with existing source

What I am trying to do only using XMLHttpRequest, is this:

  • The script downloads a web page, that has only one form in it.
  • The script inserts text into a field.
  • The script submits the form, while keeping all details about input tags.

I did the first part, but I have no idea how to finish with the next two steps.

Note: I do not have control over the page downloaded, and it is not well-formed XML/HTML.

Could someone explain to me how I can get this done?

This is for a Google Chrome extension, so I have all permissions needed.

EDIT: this is my current code:

$.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;');
            f开发者_StackOverflow社区orm.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();
        }
    });


I would really use jQuery to save yourself time and headaches.

Create a temporary div with id tempdiv and put everything in that div. Then, fill in appropriate elements and submit the form, like this:

$.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();
         }
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜