如何在window.open方法中传递参数

时间:2011-09-14 14:48:25

标签: asp.net

如何在window.open方法中传递参数。

<table id="tblUsers" cellspacing="0" >
        <asp:Repeater ID="repUsers" runat="server">
        <ItemTemplate>
        <tr><td>&nbsp;<a ID="hlUser" runat="server"  Target="_new"  onclick="return OpenWindow();" ><%# Eval("Username") %></a></td></tr>
        </ItemTemplate>
        </asp:Repeater>
    </table>

function OpenWindow() {
    var toUsername = document.getElementById("hlUser");
    window.open("ChatWindow.aspx?username=" + toUsername.value, "ChatWindow", "width=350,height=250");
    return null;
}

2 个答案:

答案 0 :(得分:1)

我对asp.net知之甚少,但看起来你有一个javascript问题。 document.getElementById("hlUser")不是<a>元素吗?它没有value属性。

如果要在<a>中获取文本元素,可以查询text属性或innerHTML

<a id="hlUser">somevalue</a>

document.getElementById('hlUser').text将返回somevalue

更新: 在转发器中放置<a>使得无法事先知道其中的任何id属性。我建议传递<a>元素或this.text本身,甚至使用相同的服务器端脚本将值传递给函数。

更新2:我发现此问题可能与How do I pass a variable using window.open()?

重复

答案 1 :(得分:0)

只需更改&amp;到+:

function OpenWindow() {
        var toUsername = document.getElementById("hlUser");
        window.open("ChatWindow.aspx?username=" + toUsername.value, "ChatWindow", "width=350,height=250");
        return null;
    }

在这个级别的代码中,你使用的是Javascript而不是VB,而VB则使用&amp;连接是编程语言中的一个奇怪现象。