Checking user's homepage in Internet Explorer

2020-05-12 04:21发布

问题:

Google displays a popup that asks if you want to set your home page as google.com. It's quite normal, when I say OK it sets it as google.com. After that however, I don't get the popup anymore. As far as I know, nobody should be able to retrieve the value of my homepage because it's a private info. But somehow Google is tracking it. I get the popup back when I set my homepage as a different site. I deleted the cookies but even then it is only displayed when I set homepage as another site.

I tested this behavior on IE8 & IE9. The popup never shows up in Firefox and Chrome.

回答1:

Internet Explorer makes it possible to ask it whether a given URL is the home page, it's detailed on this MSDN page. That links to this example page demonstrating the API.



回答2:

The code Google uses can be viewed here:

google.promos.mgmhp.isGoogleHomepage = function (a) {
    var b = !1;
    try {
        b = window.external.isGoogleHomePage()
    } catch (d) {
        if (h(a)) return !0;
        var c = google.promos.gpd(a, "mgmhp_hp_url");
        c && g.push(c);
        for (c = 0; c < g.length; c++) {
            var k = g[c];
            if (b = b || a.isHomePage(k)) return !0
        }
    }
    return b
};

They are using the proprietary isHomePage method to check if google.com is your homepage. More info here.



回答3:

The following css code is the culprit.

behavior: url(#default#homePage) url(#default#userData);

this is why I don't really like IE. The behavior url(#default#userData) tells the browser to store this as session information on the client side or browser memory.

More information here: http://msdn.microsoft.com/en-us/library/ms533015(v=vs.85).aspx