$(document.Körper).append() scheint nicht zu funktionieren im IE
Ich bin der Umleitung meine user auf mein Standard.aspx wenn seine session abläuft und die Standard-Seite, auf die verwiesen wird im Rahmen eines master-Seite. Ich zeige eine Benachrichtigung wie twitter, die besagt Session Expired
was passiert ist es funktioniert gut in firefox und google chrome, aber nicht im IE. Ich bekomme Internet Explorer cannot open site-http://localhost:1335/order/Default.aspx?Sid=1 Operation aborted
Habe ich gegoogelt dies und fand, dass $(document.body).append()
vor dem body-tag war das problem wenn ich den script auf meinen Hintern von meiner Seite meine Benachrichtigungen funktionieren nicht mit jedem browser.
Hier ist meine master-Seite,
<head runat="server">
<title></title>
<script src="Javascript/Jquery1.4.js" type="text/javascript"></script>
<script type="text/javascript">
function topBar(message) {
$("#alertmsg").remove();
var $alertdiv = $('<div id = "alertmsg"/>');
$alertdiv.text(message);
$alertdiv.bind('click', function() {
$(this).slideUp(200);
});
$(document.body).append($alertdiv);
$("#alertmsg").slideDown("slow");
setTimeout(function() { $alertdiv.slideUp(200); }, 5000);
}
</script>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
und meine topbar-Funktion in meinem Standard.aspx-Seite,
protected void Page_Load(object sender, EventArgs e)
{
Int64 id = GetId(Request.RawUrl.ToString());
if (id == 1)
{
ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "json", "topBar('Session Expired');", true);
}
}
- Wann ist die
topBar
Funktion aufgerufen? - hab ich aktualisiert meine Frage.
- Ich bin nicht vertraut mit ASP.NET. Kann man sich den generierten Quelltext der Seite und sehen, wo die Funktion tatsächlich aufgerufen wird? Es kann der Fall sein, dass es aufgerufen wird, zu früh, d.h. bevor der Körper analysiert.
- charlie ' s Antwort gearbeitet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnte ich nicht finden, den Ort, wo
topBar
genannt wird, aber wenn ich es aufrufen$(document).ready()
es funktionierte wie ein Charme in meinem IE8:Könnten Sie auch
$(window).load()
wenn Sie Grafiken und/oder andere schwere Elemente, die geladen werden muss, bevortopBar()
heißt:Hoffe, es hilft.
EDIT:
Vielleicht diese kann ein wenig helfen? Im Grunde könnte man etwas wie das hier tun:
Check-out die Antwort in den link, da gibt er ein paar alternativen