将表单操作作为整个URL发送而不会中断

时间:2012-09-20 18:09:45

标签: javascript jquery ajax forms url

我希望立即发送整个字符串http://mywebsite.com?u=http://othersite.com?thisis。如果我把它放在像bit.ly这样的URL缩短器中它可以工作,但是如果我离开它就不行,因为它会中断。

<script>
  function go(){
    window.frames[0].document.body.innerHTML='<form target="_parent" action="http://mywebsite.com?u=http://othersite.com?thisis"></form>';
    window.frames[0].document.forms[0].submit()
  }    
</script>

2 个答案:

答案 0 :(得分:4)

您必须使用encodeURIComponent()转义嵌套网址才能使网址有效。

这意味着要做这样的事情。

function go(){
    var uri = 'http://mywebsite.com?u=' 
        + encodeURIComponent('http://othersite.com?thisis');

    window.frames[0].document.body.innerHTML = 
        '<form target="_parent" action="' 
        + uri 
        + '"></form>';
    window.frames[0].document.forms[0].submit();
}    

答案 1 :(得分:0)

<script>
  function go(){
    window.frames[0].document.body.innerHTML='<form target="_parent" action="http://mywebsite.com?u=' + encodeURIComponent('http://othersite.com?thisis') + '"></form>';
    window.frames[0].document.forms[0].submit()
  }    
</script>