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