首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

IE浏览器判断浏览器首页的方法(同父域)

2013-02-24 
IE浏览器判断浏览器主页的方法(同父域)?前言:由于浏览器的安全性限制,目前还没有通用的判断浏览器主页的js

IE浏览器判断浏览器主页的方法(同父域)

?

前言:由于浏览器的安全性限制,目前还没有通用的判断浏览器主页的js方法 ,只有IE下可以判断(这里有个地方需要注意下,比如判断主页是否为aaa.bbb.com,只能在aaa.bbb.com同域下的页面调用如下判断代码)

?

以下是IE下的通用代码:

? ? ? ? ? ? var homePageDom = false;

? ? ? ? ? ? /*

? ? ? ? ? ? * ?创建IE下的主页dom

? ? ? ? ? ? */

? ? ? ? ? ? function _getHomePageDom() {

? ? ? ? ? ? ? ? if (!homePageDom) {

? ? ? ? ? ? ? ? ? ? homePageDom = document.createElement("div");

? ? ? ? ? ? ? ? ? ? homePageDom.style.display = "none";

? ? ? ? ? ? ? ? ? ? homePageDom.style.behavior = "url(#default#homePage)";

? ? ? ? ? ? ? ? ? ? document.body.appendChild(homePageDom);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? return homePageDom;

? ? ? ? ? ? }

? ? ? ? ? ? /*

? ? ? ? ? ? * ?判断IE浏览器主页方法

? ? ? ? ? ? * ?@param {string} url 主页的全路径

? ? ? ? ? ? * ?@return {bool} true表示url为主页

? ? ? ? ? ? */

? ? ? ? ? ? function _isHomePage(url) {

? ? ? ? ? ? ? ? try {

? ? ? ? ? ? ? ? ? ? return _getHomePageDom().isHomePage(url);

? ? ? ? ? ? ? ? } catch (e) { }

? ? ? ? ? ? ? ? return undefined;

? ? ? ? ? ? }

这里有个问题,如果调用页面和判断的页面不同域,以上方法就失效了,但是,如果这两个页面父域相同的话,比如在aaa.bbb.com下判断ccc.bbb.com是否为浏览器主页面,这里有个小技巧,通过iframe。可以在ccc.bbb.com的域下创建一个页面,作为子页面嵌套在aaa.bbb.com里,判断的代码写在这个子页面里(这个子页面和ccc.bbb.com同域,所以可以判断),父页面动态创建iframe,把src指向这个子页面,然后在iframe load的回调函数里调用子页面的方法拿到结果即可(注意:需要在父页面和子页面里加上一段代码document.domain=bbb.com)。

?

?

热点排行