打开javascript弹出窗口的问题

时间:2013-11-07 11:43:56

标签: c# javascript asp.net webforms

我正在生成一个无序列表,其中包含来自我的代码隐藏的超链接。当我在代码隐藏中生成代码时,它看起来很好,但它在页面上呈现出奇怪的效果。

我的代码如下所示,从数据库中获取数据以填充UL:

output.AppendFormat("<li class=\"depth-{0}\"><a href='#' OnClientClick='openNewWin('{1}')><span>{2}</span></a>",currentDepth,row["Href"], row["Name"]);

下面是代码中生成的UL外观的示例:

<ul><li class="depth-1"><a href='#' OnClientClick='openNewWin('AddressBook.aspx')><span>Address Book</span></a>}

在HTML中它出现如下:

<a href="#" onClientClick="openNewWin(" addressbook.aspx')="">

这都调用了这样的JS函数:

function openNewWin(url) {

    var x = window.open(url, 'mynewwin', 'width=600,height=600,toolbar=1,directories=no,location=no,menubar=no,left=0,top=0');

    x.focus();

}

JS功能正常。

有谁知道发生了什么事?

2 个答案:

答案 0 :(得分:1)

您的生成线需要一些修复:您正在混合'",您有一个未公开的引用,并且您将<li>标记保持打开状态。

原件:

output.AppendFormat("<li class=\"depth-{0}\"><a href='#' OnClientClick='openNewWin('{1}')><span>{2}</span></a>",currentDepth,row["Href"], row["Name"]);

修正:

//split to focus on the string
var frmt = "<li class=\"depth-{0}\"><a href=\"#\" OnClientClick=\"openNewWin('{1}')\"><span>{2}</span></a></li>";
output.AppendFormat(frmt, currentDepth, row["Href"], row["Name"]);

答案 1 :(得分:0)

你的html应该像这样呈现

<ul><li class="depth-1"><a href='#' onclick="openNewWin('AddressBook.aspx')"><span>Address Book</span></a></li></ul>
<a href="#" onclick="openNewWin('AddressBook.aspx)">test</a>

使用onclick而不是onclientclick。