2010-12-07 36 views
0

J'utilise HTA avec des cadres, le cadre gauche contrôle le cadre principal et les pages montrent en elle (comme un panneau de navigation), par exemple: Vous appuyez sur le lien « google » sur la gauche et l'ouvre sur la fenêtre principale. (Ce n'est pas le but principal de HTA, mais je le simplifie simplement pour expliquer)arrêt rapports de bugs dans HTA (sans privilèges d'administrateur)

Maintenant, le problème est lorsque j'essaie d'ouvrir une page Web avec des rapports de bugs - La HTA est de continuer à m'informer sur les bogues de la page et parfois la page ne fonctionne même pas correctement. (Les rapports de bug ne concernent pas les pages que j'ai créées!) Les mêmes pages fonctionnent parfaitement dans IE.

Il est important de mentionner que dans le titre, que moi ou l'un des utilisateurs de l'HTA ne dispose pas de privilèges d'administrateur dans le système.

Je googlé depuis longtemps, mais jamais trouvé une solution, je vraiment apprécier toute astuce utile ou d'une solution au problème.

Merci, Rotem

+0

Pourriez-vous publier le code incriminant? Pendant que je * pense * je vois ce que vous essayez de faire, le code de la page serait utile. Aussi, "je reçois des bugs" - quelles erreurs * spécifiquement *? – Piskvor

+0

Quel code voulez-vous que j'attache? Mon code ne crée pas ces erreurs, les sites que je reçois de l'HTA. Les bugs sont: Erreur Javascript .. Les erreurs normales, comme toute erreur JavaScript. (Comme celui-ci j'ai trouvé en ligne: http://www.1001bit.com/language_pack/v1.1/images/javascript-error-1.gif) Merci encore – Rotem

Répondre

1

vous avez un couple d'options pour contourner ce problème. La meilleure option consiste simplement à désactiver le paramètre "afficher une notification à propos de chaque erreur de script" dans Internet Explorer. Puisque vous exécutez un HTA, vous pouvez modifier le paramètre de registre HKEY_CURRENT_USER par programme (ou manuellement une fois.)

La deuxième approche est certainement plus un hack mais c'est comme ça que j'ai résolu le problème moi-même lorsque j'ai créé un navigateur à onglets. dans une HTA avant IE avait la navigation par onglets. Au lieu de naviguer vers l'URL de l'iframe, vous souhaiterez plutôt AJAX demander le contenu, préférez un bloc de script qui définit window.onerror à une fonction de votre choix. Puis injectez tout le contenu dans l'iframe. Cette approche va avaler toutes les erreurs et vous donner la possibilité de les signaler comme vous le souhaitez. En plus d'injecter le script onerror, vous devrez également effectuer une pré-analyse des ancres afin que les clics ultérieurs soient acheminés via le gestionnaire d'injection ajax. Cela s'est avéré assez complexe parce que vous commencez essentiellement à écrire votre propre navigateur. J'ai toujours le code source pour le projet, je vais donc le publier dans un repo bitbucket et vous laisser explorer mon approche.

Sinon, la dernière option est d'envoyer un e-mail aux administrateurs de chaque site et leur dire de corriger leurs bogues friggin !!!! mais je doute que cette option va se dérouler pour vous: D

EDIT:

Après le chargement de l'ancien projet, je l'ai découvert que la solution est moins viable qu'elle était. La directive d'en-tête x-frame-options empêche désormais google.com de même charger dans un iframe depuis IE8. Et pour une raison quelconque, le piège window.onerror n'attrape pas les erreurs dans l'iframe (peut être un problème iframe imbriqué, mais je n'ai pas de solution viable pour cela.)

Mais j'avais toujours l'option de cocher l'option "Ne plus afficher ce message" de la boîte de dialogue d'erreur. Cela fait que la boîte de dialogue d'erreur cesse de signaler les problèmes pour moi et qu'elle ne nécessite pas de privilèges d'administrateur.

+0

Hé, Merci pour l'idée .. Je serai heureux jeter un oeil sur votre code.La dernière option est la meilleure !! "Sinon, la dernière option est d'envoyer un email aux administrateurs de chaque site et de leur dire de réparer leurs bugs friggin !!!! mais je doute que cette option va se dérouler pour vous: D" :) Merci encore – Rotem