1

在我的 asp.net 应用程序中,我有一个包含两个 iframe 的页面,并且在此 iframe 中显示的主页面包含一个按钮。当这个按钮被点击时,它会调用一个 javascript 函数,该函数包含 URL 的一部分,并在父窗口中调用一个 javascript 函数。当父函数被命中时,它应该将 iframe 的 src 更改为不同的页面 - 这不会发生。主 iframe 的 ID 为 ContentIframe,侧面的 iframe 的 ID 为 LeftIframe。当它被击中时 - 左侧 iframe src 被更改为空,这是因为左侧显示不显示以前存在的内容。发生更改内容框架的 iframe src 的调用,甚至加载代码隐藏(我可以通过在后面代码中的页面加载中放置跟踪点来判断) - 但页面永远不会显示在 iframe 中,我们单击的带有原始按钮的上一页仍在显示。有谁知道为什么会发生这种情况?这是我的代码

按钮

<asp:Button ID="btnEditClient" onclientclick="editClient();" runat="server" Text="Edit Client Info" />

editClient javascript 函数

function editClient() {
var location = window.location.href;
var idindex = location.indexOf("clientid");
idindex = idindex + 9;
var id = location.slice(idindex, location.length);
window.parent.redir('client', id);

}

redir父javascript函数

function redir(type, id) {
    if (type = 'client') {
        document.getElementById('ContentIframe').src = "NewCustomer.aspx?clientid=" + id;
        document.getElementById('LeftIframe').src = "";

    }
}

如果我要在上面的 LeftIframe src 更改下方添加以下行

document.getElementById('ContentIframe').disabled = true; 

ContentIframe 根本不会显示。同样如上所述,NewCustomer.aspx 页面的页面加载被命中,我可以通过使用断点来判断。再次感谢!

编辑 - 在调用更改 src 之后,查看开发人员工具,这是 iframe 中的表单,仍然说前面的页面项目 - 不确定这是否有帮助 - 也许 method=post 可能与这个?

<form id="form1" action="NewClientSummary.aspx?clientid=13" method="post">
4

1 回答 1

1

问题是<asp:Button>呈现为提交按钮。这意味着单击它将提交表单,并且框架中的表单可能会被定向到同一页面。(默认动作)

要么使用普通按钮:

<button type="button" id="btnEditClient" onclick="editClient();">Edit Client Info</button>

或者,如果您需要它在服务器端,只需通过返回 false 来取消按钮的默认操作:

<asp:Button ID="btnEditClient" onclientclick="editClient(); return false;" runat="server" Text="Edit Client Info" />
于 2012-12-17T07:53:41.300 回答