我正在编写一个 j 脚本,它可以替换页面上的所有链接并将它们转换为表单,因此可以使用 post 方法而不是 get 方法发送请求。
我的代码是:
setTimeout(function() {
var linkss=document.links;
for (var x=0; x<linkss.length; x++) {
var href=linkss[x].href;
var u_id="3";
linkss[x].href="#";
linkss[x].onclick=function(){
var myForm = document.createElement("form");
myForm.action="http://kodaa.ir/s/";
myForm.target="myFrame";
myForm.method="POST";
var url=document.createElement("input");
url.name="url";
url.value="www.google.com";
myForm.appendChild(url);
var u=document.createElement("input");
u.name="u_id";
u.value="3";
myForm.appendChild(u);
myForm.submit();
return false;
};
}
}, 2500);
所以我有两个问题:
1- 为什么我的代码不起作用? (它只是从中删除了 href 属性,但在点击时没有做任何事情)
2- 如何将这两个变量(var href 和 var u_id)传递到函数内部?
谢谢你的帮助
最佳答案
请尝试以下代码。您错过了将表单对象附加到主体元素。我刚刚添加了“document.body.appendChild(myForm);”这条线。
setTimeout(function() {
var linkss=document.links;
for (var x=0; x<linkss.length; x++) {
var href=linkss[x].href;
var u_id="3";
linkss[x].href="#";
linkss[x].onclick=function(){
var myForm = document.createElement("form");
myForm.action="http://kodaa.ir/s/";
myForm.target="myFrame";
myForm.method="POST";
var url=document.createElement("input");
url.name="url";
url.value="www.google.com";
myForm.appendChild(url);
var u=document.createElement("input");
u.name="u_id";
u.value="3";
myForm.appendChild(u);
document.body.appendChild(myForm);
myForm.submit();
return false;
};
}
}, 2500);
关于javascript - 更改页面上的所有链接并让它们发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46703148/