2009-09-23 8 views
2

Il y a quelques années, j'utilise le script suivant pour accéder à la page d'accueil des utilisateurs lorsqu'un utilisateur clique sur un bouton. Cependant, avec le démarrage d'IE8, cela ne fonctionne pas car il semble que "about: home" ne soit plus valide.Internet Explorer 8: Accédez à la page d'accueil des utilisateurs

if(window.home) { 
    // for everything but IE: 
    window.home(); 
} else { 
    // for IE: 
    window.location = "about:home"; // IE8 will error here if the location is "about:home" 
} 

Existe-t-il une nouvelle façon d'obtenir Internet Explorer 8+ pour accéder à la page d'accueil des utilisateurs? Le script doit être un navigateur croisé.

+2

question intéressante ... même si je ne l'ai jamais bien compris pourquoi on voudrait ajouter cette ... que l'utilisateur peut cliquer sur Accueil ou appuyez sur ALT + Accueil quand ils veulent. – scunliffe

Répondre

0

I figured it out, bien que la résolution me semble très étrange:

  1. Créer un nouvel élément CSS: .hpClass {comportement: url (# default page d'accueil de #)}

  2. Créer une période faisant référence à la nouvelle CSS & la création d'un nom de classe: <span id="hp" class="hpClass"></span>

  3. envelopper le tout vérifier la version IE et en utilisant la nouvelle obje ct ou l'ancien "about: home" style: if(window.home) { window.home(); } else { ieVer = parseFloat(navigator.appVersion.split("MSIE")[1]); if(ieVer <= 7) { window.location = "about:home"; } else { hp.navigateHomePage(); } }

0

L'URI à naviguer quand about:home est entré dans la barre d'adresse est stockée dans le Registre sous

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AboutURLs 

Cependant, cette fonctionnalité semble être désactivé pour IE8. L'entrée Home est un REG_DWORD et non une valeur de chaîne contenant l'URL de la page d'accueil. Cela peut être lié à la fonctionnalité d'avoir plusieurs pages d'accueil qui peuvent être ouvertes dans des onglets.

Je n'ai pas pu trouver de documentation sur la signification de la valeur REG_DWORD Home, mais il est possible de le modifier en valeur de chaîne. Ensuite, about:home naviguera vers l'URL spécifiée dans cette valeur. Cependant, ce n'est probablement pas une solution pour vous, car cela nécessite des autorisations d'administrateur pour le registre.

0

Il semble que nous devons utiliser DHTML Behaviors d'Internet Explorer ... Je n'ai pas trouvé de solution pure JavaScript.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
             "http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns:ie> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Home Link - Test</title> 
    <style> 
    @media all { 
    IE\:HOMEPAGE {behavior:url(#default#homepage)} 
    } 
    </style> 
    <script type="text/javascript"> 
    function goHome() {         // Firefox 
    if (window.home) { 
     window.home(); 
    } 
    else {            // IE 
     if (navigator.appVersion.split("MSIE")[1] <= 7) { // IE 4-7 
     window.location = "about:home"; 
     } 
     else {           // IE 8 
     oHomePage.navigateHomePage(); 
     event.returnValue = false; 
     } 
    } 
    } 
    </script> 
</head> 
<body> 
    <ie:homepage id="oHomePage" /> 
    <a href="#" onclick="goHome();">Home</a> 
    <!-- <input type="button" value="Navigate" onclick="fnGo()"/> --> 
</body> 
</html> 
Questions connexes