2017-08-11 2 views
4

J'ai un formulaire simple un bouton et une grille de vue. Lorsque l'utilisateur clique sur le bouton son nom et l'heure à laquelle il a cliqué est enregistré. J'utilise une balise META pour actualiser la page toutes les 30 secondes. Cela fonctionne très bien dans IE, Chrome et Firefox, mais sur les navigateurs Edge quand il est actualisé, l'utilisateur reçoit un pop-up qui le soumet à chaque fois pour le renvoyer et le ré-enregistre à chaque fois.Formulaire de re-soumission dans le navigateur Edge

<meta http-equiv="refresh" content="30" /> 
    <form id="form1" runat="server">  
    <asp:Button ID="btnSave" runat="server" Text="Pick Up"/> 
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> 
     <Columns> 
      <asp:BoundField DataField="PLUSER" HeaderText="User" S 
      SortExpression="name" ItemStyle-Width="100px" /> 
      <asp:BoundField DataField="PLDATE" HeaderText="Date" 
      SortExpression="timeDate" ItemStyle-Width="250px" /> 
     </Columns> 
    </asp:GridView> 
    </form> 

Existe-t-il un paramètre ou quelque chose de spécial à propos du bord par rapport aux balises META?

+0

Quel était le point d'offrir la prime si vous alliez juste répondre à la question vous-même? – Nkosi

+0

En espérant que quelqu'un d'autre saura pourquoi la balise meta n'a pas fonctionné mais a mis ce que nous avons fini par utiliser. Jamais le meta refresh ne pouvait fonctionner, le timer est plus efficace si quelqu'un d'autre trouve le meta want pour leur donner la prime. – Scath

+0

Ok a du sens. J'étais curieux. – Nkosi

Répondre

1

si quelqu'un d'autre figure pourquoi la balise meta échoue Edge ...

J'ai trouvé un Quelques raisons pour lesquelles le tag META ne fonctionne pas dans les navigateurs Edge.

  1. Paramètres de sécurité:

Il y a un paramètre de sécurité dans Internet Explorer qui ne permet pas de balise meta refresh. Il se trouve sous l'onglet Sécurité, puis choisissez Personnaliser le niveau et Meta Tag Refresh sous Divers. Si cela est désactivé, cela empêchera le meta refresh de fonctionner.

  1. Il pourrait vous obliger à spécifier l'URL dans le contenu:

    < meta http-equiv = "refresh" content = "30; URL = http://www.Stackoverflow.com" >

  2. La balise META n'est pas une balise vide et n'a pas de balise de fermeture en HTML, uniquement en XHTML.

Alors HTML:

<meta http-equiv="refresh" content="30"> 

XHTML:

<meta http-equiv="refresh" content="30"> </meta> 

Ref. J'ai peur que même avec toutes ces solutions potentielles, il ne fonctionnera toujours pas dans Edge. Une bonne solution consiste à l'aide l'amélioration progressive comme vous l'avez fait avec le gestionnaire de script, une autre méthode utilise Javascript directement ici: https://davidwalsh.name/meta-refresh-javascript

<script> 
    ESPN_refresh=window.setTimeout(function(){window.location.href=window.location.href},900000); 
</script> 
<noscript> 
    <meta http-equiv="refresh" content="900" /> 
</noscript> 

Utiliser JavaScript comme votre principal moyen pour actualisation de la page automatique et une balise META comme votre repli.

+0

La deuxième solution a fonctionné en ajoutant l'URL à la méta-étiquette mais en laissant le temporisateur dedans. – Scath

2

Pour corriger cela pour tous les navigateurs a fini par utiliser un minuteur asp.net au lieu de la balise meta et il fonctionne dans les navigateurs edge et autres.

HTML

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>   
    <asp:Timer ID="Timer1" runat="server"></asp:Timer> 

Vb.Net

Dim MinuteCount = 0 
Dim x = "off" 
Dim count As Integer = 0 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If (Not IsPostBack Or x = "off") Then 
     MinuteCount = 0 
     Timer1.Interval = 60 * 500 
     Timer1.Enabled = True 
     x = "on" 
    End If  
End Sub 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
    x = "off" 
    Label1.Text = "Checked at: " & DateTime.Now() 
    checkData() 
End Sub