IE嵌Chrome渲染插件

原文:http://wiki.bsdn.org/pages/viewpage.action?pageId=50070010

  1. 页面引用(页面A(IE)iFrame引用页面B(Chrome Frame))
function onload() { 
    if (CFInstance && CFInstance.isAvailable()) { //判断CFInstance是否可用 
        var gcf = new CFInstance({ 
            src : url, //页面B的url地址 
            className : "chrome-frame" //通过该className可以控制返回对象的css 
            }); 
        document.body.appendChild(gcf); //添加至页面指定位置 
    }else { 
        open(url, "_self"); //CFInstance不可用时执行的动作 
    } 
};

2.页面引用(页面A(IE)iFrame引用页面B(Chrome Frame), 页面B 打开url)

  • 页面A代码
function onload() { 
    if (CFInstance && CFInstance.isAvailable()) { 
        var gcf = new CFInstance({ 
            src : url, 
            className : "chrome-frame" 
        }); 
        gcf.rpc.expose("showIEDialog", showIEDialog); //注册页面A中可调用的方法 
        document.body.appendChild(gcf); 
    } else { 
        open(url, "_self"); 
    } 
}; 

function showIEDialog(url, name, options) { 
    window.open(url, name, options); 
}
  • 页面B代码(注:坑,第二个参数要加上[]          !!!!!! )
//页面B代码示例 
if (CFInstance && !dorado.Browser.msie) { //判断当前为非IE浏览器且CFInstance可用 
    if (CFInstance.rpc) { //判断当前页面是否通过new CFInstance方式打开 
        //调用框架页C中暴露的方法showIEDialog,第二个参数为传递的参数 
        CFInstance.rpc.callRemote("showIEDialog", [ url, name, options ]); 
        CFInstance.rpc.init(); 
     } else { 
            //当前页面非new CFInstance方式打开,例如直接使用Chrome浏览器打开了框架页C 
            alert("目标地址需要IE浏览器"); 
     } 
} else { //当前浏览器为IE且Chrome Frame不可用,页面A为IE渲染 
    open(url, name, options); 
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值