1

2 つの POST パラメーターを使用して URL を開く方法を探しています。私の唯一のオプションは、WebBrowser コントロールでフォームを作成し、ボタンを自動クリックする小さな exe を作成することです。これは恐ろしいことです。これを行うためのより良い方法はありますか?

4

3 に答える 3

2

次の JavaScript を使用して HTML ファイルを作成できます。

<script type="text/javascript">
<!-- The function below does a post without requiring a form or the click of a button -->
function postwith (to,p) {
    var myForm = document.createElement("form");
    myForm.method="post" ;
    myForm.action = to ;
    for (var k in p) {
        var myInput = document.createElement("input") ;
        myInput.setAttribute("name", k) ;
        myInput.setAttribute("value", p[k]);
        myForm.appendChild(myInput) ;
    }
    document.body.appendChild(myForm) ;
    myForm.submit() ;
    document.body.removeChild(myForm) ;
}
</script>

使用例:

    <script type="text/javascript">
    function delconfirm(id){
        if(confirm('Are you sure?'))
        {
            postwith('http://somesite.com/webpagetorecievepost.php',{KEY:VALUE,KEY:'STRING VALUE'});
        }
    }
   </script>

KEY:VALUEのペアはいくつでも持つことができます。

この html ファイルを取得したら、変更して Internet Explorer で開くことができます。

于 2012-07-26T13:58:30.803 に答える
0

これが機能するようになったので、クエリ文字列を含む標準の .html ファイルを開いて、パラメーターを URL に転送できます。

function postFromQueryString(url) {
    // grab params from query string into KVP array
    var postParams = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        postParams.push(hash[0]);
        postParams[hash[0]] = hash[1];
    }
    if(postParams.length === 0) {
        alert('No parameter was passed');
        window.close();
        return;
    }
    // create a form
    var formToPost = document.createElement("form");
    formToPost.method="post";
    formToPost.action = url;
    // add params to form
    for (var k in postParams) {
        var postInput = document.createElement("input");
        postInput.setAttribute("name", k);
        postInput.setAttribute("value", postParams[k]);
        formToPost.appendChild(postInput);
    }
    document.body.appendChild(formToPost);
    formToPost.submit();
    document.body.removeChild(formToPost);
}

onLoad を呼び出すには:

(function () {
    // build dynamic form and post
    postFromQueryString('http://yourUrlToPostTo.aspx');
})();
于 2012-07-27T11:12:00.550 に答える
0

Seleniumなど、IE を駆動できる Web ブラウザ自動化ツールがあります。Selenium はスクリプト可能で、主要なブラウザ用のドライバがあります。私は、Javaコードによって駆動される、この種のものにのみセレンを使用しました。代替手段があります。

AutoITなど、特定のプログラムを開いて GUI 要素を操作できるWindows GUI 自動化ツールもあります。

于 2012-07-26T13:38:09.043 に答える