一旦涉及代理,Javascript就无法正常运行

时间:2014-07-17 00:21:12

标签: javascript forms proxy

我有一个简单的代码,您可以在以下链接中找到: http://jsfiddle.net/UXCb9/26/

<form name="Form1" method="post">
<!--Form data here, irrelevant.-->
<INPUT type="button" value="Watch" onclick="return move();">
</form> 
<br><iframe name="frame1" width="50%" height="50%""></iframe>

<script type="text/javascript">  
    function move() {
        document.Form1.action = "http://translation.babylon.com/"
        document.Form1.target = "frame1";    // Open in an Iframe
        document.Form1.submit();   // Submit the page with "Form1" Data
        setTimeout("move2()", 2000);
    }
</script>
<script type="text/javascript">
    var person = { name: 'Joe Blow' };  // Disregard
    function move2() {
        document.write(person.name);  //  Write text once timer is over
    }
</script>

基本上它只是一个单击一次调用Java函数的表单,该函数将表单提交到iframe,最后 - 用户在2秒后(通过计时器)收到一条短消息。它工作正常,但一旦用户尝试通过“匿名使用代理冲浪”网站使用代码,例如: http://www.superbproxy.com/browse.php?u=http%3A%2F%2Fjsfiddle.net%2FUXCb9%2F26%2F&b=4&f=norefer

嗯,它不起作用。我已经尝试了几个类似代理网站的代码(上面只是一个例子),结果是一样的。我已经尝试弄清楚为什么代理站点不能正确处理Java但是没有想法。对我来说,使用代理(非常多)的用户不会遇到任何问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

行为将根据webproxy而改变。一些Web代理尝试解析页面上Javascript代码中包含的URL,但是当行末没有分号时它会失败。

您在

处缺少分号
document.Form1.action = "http://translation.babylon.com/"

我添加了一个分号,你提到的代理与jsFiddle

配合得很好

演示:http://jsfiddle.net/UXCb9/28/

使用代理:http://www.superbproxy.com/browse.php?u=http://jsfiddle.net/UXCb9/28/