我有一个脚本,我希望在5次页面浏览后弹出一个窗口。 java脚本在default.aspx页面上工作正常,并带有一个调用它的链接。但是我想在会话var count到达5之后从default.aspx.cs页面中将它拉出来。我该怎么做?有可能吗?
的Default.aspx
<script type="text/javascript">
window.name = "Register";
function popWin(link) {
var w = window.open(link.href, link.target, 'width=500,height=600,resizable');
return w ? false : true; // if popup blocker, use the default behaviour of the link
}
</script>
Default.aspx.cs页面
if (Session["PagesViewed"].ToString() == "5")
{
//Call my Javascript function How?????
}
答案 0 :(得分:4)
您可以从后面的代码中将javascript输出到LiteralControl
:
的.aspx:
<asp:Literal id="myLiteral" runat="server" />
代码背后:
myLiteral.Text = "<script type='text/javascript'>popWin('url');</script>";
以这种方式渲染时,输出脚本将调用该函数 - 确保它在页面中比定义函数的位置低,以确保它存在。
答案 1 :(得分:2)
在ASP.Net中,您可以执行以下操作:
Page.ClientScript.RegisterStartupScript(
this.GetType(),
"openpopup",
"popWin('www.someurl.com');",
True);
如果您需要更多地控制脚本放置@Oded有一个更好的方法 - 因为尝试调用尚未定义的函数不是一个好主意......
答案 2 :(得分:0)
您无法直接从C#调用javascript函数。但是,您可以做的是将<script>
传递给执行该功能的浏览器。
response.Write("<script>popWin(something);</script>");