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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章