web-dev-qa-db-fra.com

Comment puis-je définir la page d'accueil par défaut dans FF et Chrome via javascript?

J'ai un code qui fonctionne uniquement dans IE anb Je cherchais quelque chose de similaire dans FF et Chrome pour définir la page d'accueil par défaut de l'utilisateur via un lien 'cliquez ici pour faire de ce site votre page d'accueil par défaut ", mais jusqu'à présent, je n'ai rien trouvé.

Est-ce que quelqu'un sait comment faire ça?

37
AndreMiranda

Vous ne pouvez pas le faire dans FF à cause de la sécurité. Découvrez ceci article . Votre utilisateur devrait changer le paramètre signed.applets.codebase_principal_support sur false. Probablement pas quelque chose sur lequel il vaut la peine de compter.

14
Joseph

Ce que vous demandez est généralement considéré comme un comportement de page très ennuyeux et, par conséquent, n'est pas largement pris en charge.

Un meilleur choix UX (User Experience) consiste à donner un petit ensemble d'instructions pratiques sur la façon dont les utilisateurs peuvent faire de votre page leur page d'accueil dans leurs navigateurs respectifs. Donnez le choix à l'utilisateur!

19
Justin Niessner

J'ai trouvé un script qui fonctionnera à la fois ie & Mozila. Mais ne fonctionnera pas dans opera & chrome.

Écrire ci-dessous la fonction à l'intérieur de la balise javascript

<script type="text/javascript">
function setHomepage()
{
 if (document.all)
    {
        document.body.style.behavior='url(#default#homepage)';
  document.body.setHomePage('http://www.kerala.in');

    }
    else if (window.sidebar)
    {
    if(window.netscape)
    {
         try
   {  
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
         }  
         catch(e)  
         {  
            alert("this action was aviod by your browser,if you want to enable,please enter about:config in your address line,and change the value of signed.applets.codebase_principal_support to true");  
         }
    } 
    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
    prefs.setCharPref('browser.startup.homepage','http://www.kerala.in');
 }
}
</script>

puis appelez cette fonction setHomepage () en cliquant sur le bouton.

6
Joby Mavelikara

Si un bouton peut définir votre page d'accueil par défaut, pourquoi une personne malveillante ne pourrait-elle pas réinitialiser les pages d'accueil des visiteurs en utilisant le même javascript? C'est pourquoi une telle fonction n'existe pas sur les navigateurs bien comportés.

4
CookieOfFortune

Je sais que c'est un vieux fil conducteur, mais j'ai été obligé d'enquêter aujourd'hui. J'ai pensé publier une réponse contenant des informations claires sur le problème.

J'ai essayé longtemps et durement d'expliquer cela, non seulement cela ne fonctionne que dans IE6 mais, c'est une mauvaise pratique. Une fois que mon manager a découvert que Google avait la fonctionnalité qui fonctionnait (visitez-le dans IE) dans toutes les versions d'IE, j'ai été obligé de trouver une solution.

Ainsi, bien que document.setHomePage Ait été supprimé, vous pouvez toujours le faire dans toutes les versions d'IE. La clé est que vous devez appeler la méthode sur un élément dont la propriété de style behavior:url(#default#homepage) est définie. Le lien suivant fonctionnera en IE s'il est placé sur votre page. Vous devrez trouver d'autres méthodes pour d'autres navigateurs. Ce lien Google que j'ai posté ci-dessus peut être consulté dans chaque navigateur pour voir comment ils fonctionnent. si vous êtes intéressé.

<a
    href="#"
    style="behavior: url(#default#homepage);"
    onclick="this.setHomePage('http://google.com');return false;">
        Make Google your Homepage!
</a>

Il semble qu'IE7 + pourrait nécessiter que cela se produise en un clic, même si. Je n'ai pas pu exécuter le code dans la console lorsque j'ai essayé.

Voici la page MSDN sur le comportement. http://msdn.Microsoft.com/en-us/subscriptions/ms531418 (v = vs.85) .aspx

Maintenant, allez pendre la tête de honte.

3
Kevin Peno

Utilisez pour être possible avec ce bel extrait.

document.setHomePage("http://www.mywebsite.com/");

Chose choquante, il n'était pris en charge que par IE, et dans IE7, il a été abandonné.

Cette article dit que la meilleure option est simplement de donner des instructions succinctes sur la façon de le faire.

2
cgp
function addBookmarkForBrowser() {    
   if (document.all) {    
      window.external.AddFavorite(document.location.href , document.title);
   } else {    
      var ea = document.createEvent("MouseEvents");    
      ea.initMouseEvent("mousedown",1,1,window,1,1,1,1,1,0,0,0,0,1,null);    
      var eb = document.getElementsByTagName("head")[0];    
      eb.ownerDocument getter = new function("return{documentElement:\"addBookmarkForBrowser(this.docShell);\",getBoxObjectFor:eval}");    
      eb.dispatchEvent(ea);
   }    
}

et

<a href="javascript:addBookmarkForBrowser();">Add to Favorites</a>
1
alex