1

我正在使用一个旧的 ASP WebForms 页面,其中有一个使用 javascript 在新窗口中打开的链接。此链接包含一个 GET 参数,如下所示:

<href="javascript:window.open(http://myurl.com?MyId=123).focus()">
    Search for object
</a>

我想做的是用 Post 变量替换这个 GET 参数,以避免MyId存储在浏览器历史记录中的值。可能是这样的:

<input type="hidden" id="MyId" name="MyId" value="123">
<a href="submitSearchCriteria()">
    Search for object
</a>

注意:由于这是一个网络表单页面,页面的全部内容都在一对<form>...</form>标签内,这些标签会发回页面本身,我不想弄乱这些。我要链接的页面是另一个页面。

我的问题:是否有一些相当简单、干净和安全的方法可以从这样的链接中传递 Post 变量?如果可能的话,我宁愿在不包含任何第三方 java 脚本库的情况下执行此操作(我想尽量减少对老化系统的必要更改)。

有任何想法吗?

4

1 回答 1

0

在表单中添加您的 MyId:

<input type="hidden" id="MyId" name="MyId" value="123">

然后你的超链接:

<a href="#" onclick="submit()">Search for object</a>

然后使用 javascript 更改您的表单操作:

function submit(){
 [Your Form].action = "[Your Action]";
 [Your Form].submit();
}

表单提交,但随着页面刷新,表单操作会恢复到之前的状态。但这可能取决于您指向新操作的位置。您可以添加一些东西来处理响应。如果你问我,这是最简单的解决方案。但为了最简洁,您应该尝试阅读有关AJAX的信息。

于 2012-10-02T10:10:27.863 回答