Internet Explorer 8现在运行在视图源中显示的代码

时间:2013-08-12 17:32:49

标签: c# asp.net

所以我的页面底部有一个服务器控件:

<%= addPopup() %>

以下是代码:

protected String addPopup()
{
    if (usedSearch == false)
    {
        return "";
    }
    else
    {
        return "<body id=\"test\" onload=\"popup.show()\" runat=\"server\">";
    }
}

基本上,根据用户的操作,usedSearch将为true或false,从而导致HTML行被添加到页面中:

<body onload="popup.show()" runat="server">

这样做会向用户显示弹出窗口,我这样做是为了在需要时在回发时显示。

这适用于所有主流的现代浏览器。它在Internet Explorer 8中不起作用,即使它出现在包含IE8的每个浏览器的代码中。当如何成为页面源的一部分时,如何让IE8显示弹出窗口?

1 个答案:

答案 0 :(得分:1)

你正在渲染重复的身体标签,这可能就是为什么IE没有拿起它的原因。您应该在</body>代码:

之前在页面底部输出javascript代码段
<script type="text/javascript">
    if (window.addEventListener) {
      window.addEventListener('load', popup.show, false);
    }
    else if (window.attachEvent) {
      window.attachEvent('onload', popup.show );
    }
</script>

它会将您的函数附加到所有浏览器中的onLoad事件。

P.S。只需确保在此代码之前初始化了popup.show函数。