js中a标签跳转问题(参数隐藏问题以及href和target的冲突问题)

我们在写a标签的href时,有的时候不希望被人看到我们提交的参数,这个时候有两种解决办法,一种是用ajax设置提交方式为post方式(如果已经在ajax方法中,需要使用ajax嵌套,这个时候需要在内层ajax中设置async:false,设置请求方式为同步),另外一种方法是在href的js方法中创建form表单提交,并设置提交形式为post,具体代码如下:

  1. <body>  
  2.     <a href="javascript:doPost("addStudent.action", {"name":"张三"})">提交</a>  
  3.   
  4.     <script>  
  5.         function doPost(to, p) {  // to:提交动作(action),p:参数  
  6.             var myForm = document.createElement("form");       
  7.             myForm.method = "post";  
  8.             myForm.action = to;   
  9.         for (var i in p){      
  10.                   var myInput = document.createElement("input");       
  11.                     myInput.setAttribute("name", i);  // 为input对象设置name  
  12.                     myInput.setAttribute("value", p[i]);  // 为input对象设置value  
  13.                     myForm.appendChild(myInput);  
  14.                 }     
  15.                 document.body.appendChild(myForm);     
  16.                 myForm.submit();   
  17.                 document.body.removeChild(myForm);  // 提交后移除创建的form  
  18.         }  
  19.     </script>  
  20. </body>  


如果设置成JavaScript:function()的形式,这个时候target属性就会不起作用,原因是不同的浏览器对这两个属性的处理前后顺序不一致,这个时候想要解决的话有两种办法:

一、跳转href是一般跳转:

此时你只需要在href的js方法中定义a标签的target属性即可

二、如果是采取的form表单的post提交跳转方式:

此时可以在form表单中设置属性

myForm.target="—blank";
这时target属性才会生效。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值