如何通过javascript在FF和Chrome中设置默认主页?

如何通过javascript在FF和Chrome中设置默认主页?,javascript,firefox,google-chrome,Javascript,Firefox,Google Chrome,我有一个只适用于IE anb的代码,我在FF和Chrome中寻找类似的东西,通过链接“单击此处将此站点设置为默认主页”来设置用户的默认主页,但到目前为止,我没有找到任何东西 有人知道怎么做吗?如果一个按钮可以设置默认主页,为什么有人不能使用相同的javascript重置访问者主页?这就是为什么在性能良好的浏览器上不存在这样的函数。由于安全原因,您不能在FF中执行此操作。看看这个。用户必须将signed.applets.codebase\u principal\u支持设置更改为false。可能不值

我有一个只适用于IE anb的代码,我在FF和Chrome中寻找类似的东西,通过链接“单击此处将此站点设置为默认主页”来设置用户的默认主页,但到目前为止,我没有找到任何东西


有人知道怎么做吗?

如果一个按钮可以设置默认主页,为什么有人不能使用相同的javascript重置访问者主页?这就是为什么在性能良好的浏览器上不存在这样的函数。

由于安全原因,您不能在FF中执行此操作。看看这个。用户必须将signed.applets.codebase\u principal\u支持设置更改为false。可能不值得信赖。

使用这个可爱的片段是可能的

document.setHomePage("http://www.mywebsite.com/");
令人震惊的是,它只得到了IE的支持,而在IE7中,它被终止了


这意味着最好的选择就是给出简洁的说明。你所要求的通常被认为是非常烦人的页面行为,因此没有得到广泛的支持


更好的UX(用户体验)选择是提供一组小的“操作”说明,说明用户如何在各自的浏览器中使您的页面成为他们的主页。让用户选择

我找到了一个既适用于ie又适用于Mozila的脚本。但在opera&chrome中不起作用

在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>

函数setHomepage()
{
如果(全部文件)
{
document.body.style.behavior='url(#默认#主页)';
document.body.setHomePage('http://www.kerala.in');
}
else if(窗口侧栏)
{
if(window.netscape)
{
尝试
{  
netscape.security.privilegmanager.enablePrivilege(“UniversalXPConnect”);
}  
捕获(e)
{  
警报(“此操作已被浏览器禁用,如果要启用,请在地址行中输入about:config,并将signed.applets.codebase_principal_support的值更改为true”);
}
} 
var prefs=Components.classes['@mozilla.org/preferences service;1'].getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage','http://www.kerala.in');
}
}

然后单击按钮调用此函数setHomepage()

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


我知道这是一条老线索,但今天我不得不对此进行调查。我想我应该发布一个关于这个问题的明确信息的答案

我花了很长时间努力解释,这不仅在IE6中有效,而且是一种糟糕的做法。一旦我的经理发现谷歌(在IE中访问)在IE的所有版本中都存在,我就不得不找到一个解决方案

因此,虽然
document.setHomePage
确实已被删除,但在IE的所有版本中,您仍然可以执行此操作。关键是您必须对具有style属性
behavior:url(#default#homepage)
set的元素调用此方法。如果将以下链接放在您的页面上,则该链接将在IE中起作用。您必须为其他浏览器找到其他方法。如果你感兴趣的话,可以在每个浏览器中查看我上面发布的谷歌链接,看看他们是如何做到的

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

看起来IE7+可能需要在单击时执行此操作,即使如此。我尝试时无法让代码在控制台中运行

这是有关行为的MSDN页面


现在让我羞愧地低下头。

因为即使是IE也会要求用户确认。特别是因为只有在特定浏览器中才能使用的链接很烦人。这个问题被否决为-1。我再次投了赞成票,因为这是一个非常好的问题,即使人们不同意op试图实现的目标。好问题,我需要在web应用程序中使用它…还有Opera?还有Webkit/Chrome/Safari?它保持不变。不要这样做,启用你的用户,这样他就可以自己做。如果这听起来很粗鲁,很抱歉。我刚刚看到,这是你的第一个答案。不要让自己被我这样的人气馁;-)您可以通过缩进第4行空格将文本格式化为代码(为了更好的可读性)。
如果(document.all)
非常古老,请检查IEthen为什么Facebook可以这样做?我想我以前见过他们这么做不幸的是我今天不得不调查这件事。这个功能存在于IE9中,因此它很可能是可以依赖的。但是,您必须对行为样式属性设置为
url(#default#homepage)的元素调用
setHomePage
SyntaxError:Chrome中此行的意外标识符:“eb.ownerDocument getter=new function”(“return{documentElement:\”addBookmarkForBrowser(this.docShell);\“,getBoxObjectFor:eval}”)
<a
    href="#"
    style="behavior: url(#default#homepage);"
    onclick="this.setHomePage('http://google.com');return false;">
        Make Google your Homepage!
</a>