6
votes

Supprimer "Flash" entre les pages tout en utilisant Internet Explorer Modal Boxes

J'ai une application Web interne, c'est-à-dire spécifique et utilise beaucoup de boîtes modales spécifiques à savoir: (fenêtre.showmodaldialog).

J'ai récemment reçu une demande de supprimer le "flash" lors de la navigation entre les pages de le site. Pour accomplir cela, je viens d'ajouter une balise de transition Meta à ma page maître: p> xxx pré>

Cela fonctionne parfaitement à l'exception des cases modales. Lorsque vous lancez une boîte modale, puis déplacez-la, la page Web de la page conserve une piste de la boîte modale au lieu de re-dessiner le contenu de la page Web. Cela empêche l'utilisateur de déplacer la boîte modale pour lire tout ce qui était derrière elle. P>

existe un moyen d'empêcher le "flash" entre les pages d'un site IE spécifique et que le site fonctionne toujours avec des cases modales ? p>

Veuillez noter que ceci est un site volumineux et complexe, ce qui le recélère donc pour ne pas utiliser de boîtes modales n'est pas une option. p>

Ceci est un ASP.NET, C # Application Web, et tous mes utilisateurs utilisent IE 7 et IE 8 si cela fait toute différence. p>

-edit - p>

Pour en double place, placez ce qui suit dans une page HTML, et ouvrez-le dans Internet Explorer: P>

<html>
<head>
    <title>Test</title>
    <meta content="blendTrans(duration=0.0)" http-equiv="Page-Exit">
</head>
<body>
<script language="javascript">
    window.showModalDialog('modal.htm', window);
</script>
</body>
</html>


2 commentaires

Pas exactement un traitement, mais une solution intermédiaire: essayez de redessiner manuellement la page lorsque l'utilisateur arrête de faire glisser la fenêtre modale - réglage de la fenêtre "Zoom: 1" à la balise de corps. Je suggère de ne pas redessiner la page tout en faisant glisser - ce serait une overcive à IE. Peut-être que vous pourriez mettre en place un exemple sur jsfiddle.net afin que nous puissions jouer et voir s'il y a une solution.


J'ai mis à jour ma question avec le code qui peut être utilisé pour dupliquer le problème.


3 Réponses :


2
votes

Avez-vous essayé les solutions de Cette page ? Il vous dit que vous devez ajouter un élément élément à la section principale (si vous avez le problème de contenu non plané [pas le problème de la page blanche]).

aussi de Les meilleures pratiques de Yahoo : P>

La spécification HTML indique clairement que les feuilles de style doivent être incluses dans la tête du Page: "Contrairement à A, [Link] ne peut apparaître que dans la section principale d'un document, bien qu'il puisse paraître un nombre de fois." Ni des alternatives, l'écran blanc blanc ou le flash de contenu non collé, valent le risque. La solution optimale consiste à suivre la spécification HTML et à charger vos feuilles de style dans la tête du document. P>


Assurez-vous d'avoir un élément dans la tête de toutes vos pages et assurez-vous que vous Mettez ces feuilles de style au niveau haut fort> de la section de tête et éléments après forts> eux (de préférence après tout le contenu de la page et immédiatement avant la fermeture de fermeture). P>


Je sais que vous avez dit que vous ne pouvez pas utiliser les modaux, mais je pensais partager cet exemple de Modal JS en utilisant JQuery et Facebox . Vous n'avez même pas besoin de modifier vos appels vers "ShowModaldialog" (si vous finissez par utiliser cette méthode modale, vous pouvez toujours utiliser votre truc de transition de la page de sortie de la page Meta Page de sortie). P>

window.showModalDialog = function(a){
     $.get(a,function(html){
         $.facebox(html);
     });
};
window.showModalDialog('linkOnSameDomain.htm', window);


11 commentaires

Merci pour la réponse, mais je ne vois pas comment les feuilles de style sont liées à cela. Si vous regardez la page d'échantillonnage, je monte, il n'y a pas de feuilles de style (ni de styles de quelque nature que ce soit) impliquée. Comment puis-je modifier la page d'échantillon que j'ai fournie avec l'une de ces solutions ou les meilleures pratiques pour résoudre le problème?


Supprimer le Pièce (qui provoque le problème de ré-dessin) entièrement. Vous ne devriez pas en avoir besoin si vous avez vos feuilles de style et vos scripts dans le bon ordre.


En outre, j'ai fait une double vérification et toutes les feuilles de style externes sont référencées au-dessus de l'en-tête de notre page maître. J'ai mal compris que vous abordiez la question fondamentale et non les problèmes spécifiques causés par la transition de la page que j'ai ajoutée.


Yah, désolé je n'étais pas clair sur ça. Sont tous vos éléments de script après les feuilles de style? Est-ce que l'une de vos feuilles de style utilisez @import?


Ma tête de page rendue ressemble à ceci: titre, références à 5 feuilles de style utilisant: , liens vers une JavaScript externe, une javascript en ligne, puis de 10 ou deux lignes de Styles en ligne qui sont ajoutés par des contrôles tiers.


hm, ça sonne bien. Vous pouvez essayer de déplacer le JS sur le pied de page.


J'ai trouvé que les fichiers .CSS étaient également liés dans certains contrôles utilisateur. Cela a abouti à être inclus plus d'une fois, dans l'en-tête et en ligne. Si je supprimais ces licenciements et déplacez tous les liens .js vers le bas, le flash s'en va pour quelques pages, mais pas à chaque fois. Je reçois aussi un groupe d'erreurs JS car les scripts en ligne ont besoin des fichiers externes, qu'ils ne peuvent plus se rendre. Cela me mène dans la bonne direction pour la cause fondamentale, mais peut-être trop pour aborder en ce moment. Donc, pour le moment, je devrai voir si je peux obtenir le tour de la transition de la page pour travailler. Merci!


Je t'en prie. On dirait que le projet est un peu géré et difficile à entretenir. Alors bonne chance! ------------ Remarque: Vous pouvez toujours simplement charger un iframe dans la teneur en fibre-fécule (par exemple: '

Articles qui pourrait vous intéresser :

Impossible d'importer le module "@ angular / material"
Interaction profonde avec break and catch
Utilisation de node.js comment renommer tous les fichiers d'un dossier
Google Chrome Uncaught (promis) DOMException lors de la lecture AUDIO