首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript window.open()转义与符号

Javascript window.open()转义与符号
EN

Stack Overflow用户
提问于 2012-11-21 01:00:31
回答 2查看 1.2K关注 0票数 2

我正在升级一个遗留应用程序,它使用恼人的做法--使用Javascript window.open()打开弹出窗口来设置值。我在向弹出窗口传递querystring变量时遇到了问题,因为url是在服务器端构建的。

示例

JS:

代码语言:javascript
复制
function popupwindow(vLink) { 
    window.open(vLink, 'Detail','width=600px,height=545px,status=yes,help=no,scrollbars=yes,resizable=yes,top=350');
}

XML

代码语言:javascript
复制
<asp:Label ID="lblOpener" runat="server" Text="_"></asp:Label>

服务器端

代码语言:javascript
复制
int ditem = 123;
string dcode = "ABC";
string vLink = string.Format("detail.aspx?item={0}&code={1}", ditem, dcode);
lblOpener.Attributes.Add("onclick", "popupwindow('" & vLink & "');");

当单击标签时,我希望弹出窗口会打开并显示查询字符串:

http://detail.aspx?item=123&code=ABC

取而代之的是,我得到了如下内容:http://detail.aspx?item=123&amp%3bcode=ABC

我如何才能防止这种情况发生?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-21 01:04:01

您可以尝试使用JavaScriptSerializer进行编码

代码语言:javascript
复制
lblOpener.Attributes.Add("onclick", "popupwindow(" & New JavaScriptSerializer().Serialize(vLink) & ");");
票数 5
EN

Stack Overflow用户

发布于 2012-11-21 01:08:19

encodeURI会工作吗?把你的vLink包装成这样:

代码语言:javascript
复制
lblOpener.Attributes.Add("onclick", "popupwindow('" & encodeURI(vLink) & "');");

也许行得通!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13478231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档