0

我想发布一个表单并使用javascript将响应html代码保存在一个变量中。
这是我的代码:

<script type="text/javascript">
function submitform()
{
  document.forms["myform"].submit();
}
</script>

<form id="myform" action="url" method="post" target="iframe">
<input type="hidden" name="arg" value="value">
<a href="javascript: submitform()">Go</a>
</form>
<iframe name="iframe"></iframe>



如果我运行此代码响应将显示在 iframe 中。但在某些情况下,加载 iframe 页面后会重定向到源代码。我搜索了很多地方以阻止重定向发生,但没有找到任何方法!
我刚刚通过添加此 javascript 代码找到了一种方法:

window.onbeforeunload = function(){
            return false;
        };

但是这种方式很烦人,因为它在重定向时会显示一个对话框,我不能要求用户每次都点击它!
所以我选择了一种不在浏览器中加载响应 html 代码的方法来进行重定向!而不是将响应保存在变量中并删除脚本然后打印它!

有什么办法吗?

4

3 回答 3

1

您正在拐角处编码。使用 jQuery 及其 .ajax 方法。将返回的标记放置到 div 中,而不是 iframe。

于 2012-06-09T12:25:23.353 回答
1

你应该看看jQuery 的 AJAX 功能,它非常灵活且易于使用。或者,更简单,试试jQuery Form Plugin,它基本上可以自动化所有与表单相关的事情。您所要做的就是指出表格并告诉您在提交表格之前和/或之后要做什么。

于 2012-06-09T12:36:13.187 回答
0

您可以使用 javascript 来发出发布请求,而不是使用表单。在这种情况下,只要您发布到同一个域,您就可以轻松捕获响应。(出于安全原因,跨域帖子不提供返回值)。请参阅JavaScript 发布请求,如表单提交,了解如何使用 javascript 发布。

于 2012-06-09T12:25:11.047 回答