2009-06-03 14 views
33

Tengo un código que funciona solo en IE anb Estaba buscando algo similar en FF y Chrome para configurar la página de inicio del usuario a través de un enlace 'haga clic aquí para hacer de este sitio su página de inicio predeterminada', pero hasta ahora no he encontrado cualquier cosa.¿Cómo puedo configurar la página de inicio predeterminada en FF y Chrome a través de javascript?

¿Alguien sabe cómo hacer esto?

+20

La pregunta ha bajado a -1. Voté nuevamente porque es una buena pregunta, incluso si uno no está de acuerdo con lo que la operación está tratando de lograr. – KaptajnKold

+1

Buena pregunta, la necesito en una aplicación web ... – Michel

Respuesta

12

No puede hacerlo en FF debido a la seguridad. Mira esto article. Su usuario tendría que cambiar la configuración signed.applets.codebase_principal_support a false. Probablemente no sea algo en lo que valga la pena contar.

+1

¿por qué Facebook puede hacer eso? Creo que vi que lo hicieron antes de –

4

Si un botón puede configurar su página de inicio predeterminada, ¿por qué alguien no pudo restablecer maliciosamente las páginas de inicio del visitante con el mismo javascript? Esta es la razón por la que dicha función no existe en navegadores de buen comportamiento.

+3

Porque incluso IE le pide confirmación al usuario. – grawity

2

Úsese para ser posible con este hermoso fragmento.

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

Sorprendentemente, solo era compatible con IE, y en IE7 se descontinuó.

Este article dice que la mejor opción es simplemente dar instrucciones sucintas sobre cómo hacerlo.

+1

Lamentablemente me vi obligado a investigar esto hoy. Esta funcionalidad existe en IE9, por lo que es probable que se pueda confiar. Sin embargo, debe llamar a 'setHomePage' en el elemento que tiene la propiedad de estilo de comportamiento establecida en' url (# default # homepage) ' –

18

Lo que está pidiendo generalmente se considera un comportamiento de página muy molesto y, por lo tanto, no es ampliamente compatible.

Una mejor opción de UX (experiencia del usuario) es proporcionar un pequeño conjunto de instrucciones sobre cómo los usuarios pueden hacer que su página sea su página de inicio en sus respectivos navegadores. ¡Dale al usuario la opción!

+0

Especialmente porque los enlaces que solo funcionan en un navegador en particular son molestos. – grawity

4

He encontrado una secuencia de comandos que funcionará tanto es decir & Mozila. Pero no funcionará en la opera & chrome.

escriba debajo de función dentro de la etiqueta 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> 

continuación, llamar a esta función SetHomePage() el clic de botón.

+0

y Opera? ¿Y Webkit/Chrome/Safari? Se mantiene igual. No hagas esto, habilita a tu usuario para que pueda hacerlo él mismo. – Boldewyn

+8

Lo siento si esto sonó grosero. Acabo de ver que esta es tu primera respuesta. No se deje desanimar por alguien como yo ;-) – Boldewyn

+0

Puede formatear texto como código (para una mejor legibilidad) al sangrar una fila de 4 espacios. –

1
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); 
    }  
} 

y

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

¿Alguien ha intentado esto? – Lennon

+0

SyntaxError: identificador inesperado en Chrome para esta línea: "eb.ownerDocument getter = nueva función (" retorno {documentElement: \ "addBookmarkForBrowser (this.docShell); \", getBoxObjectFor: eval} ");" –

3

Sé que este es un hilo viejo, pero se vio obligado a investigar esto hoy. Pensé en publicar una respuesta con información clara sobre el problema.

He intentado explicar esto, no solo funciona en IE6 sino que es una mala práctica. Una vez que mi gerente descubrió que Google had the functionality working (lo visite en IE) en todas las versiones de IE, me vi obligado a encontrar una solución.

Por lo tanto, aunque document.setHomePage ha sido eliminado, aún puede hacerlo en todas las versiones de IE. La clave es que debe llamar al método en un elemento que tenga la propiedad de estilo behavior:url(#default#homepage) establecida. El siguiente enlace funcionará en IE si se coloca en su página. Deberá buscar otros métodos para otros navegadores. El enlace de Google que publiqué arriba se puede ver en cada navegador para ver cómo lo hacen si estás interesado.

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

Parece que IE7 + podría requerir que esto suceda en un clic, incluso aunque. No pude obtener el código para ejecutar en la consola cuando lo intenté.

Aquí está la página de MSDN en el comportamiento. http://msdn.microsoft.com/en-us/subscriptions/ms531418(v=vs.85).aspx

Ahora para ir pasar la cara de vergüenza.

Cuestiones relacionadas