日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Google Chrome Frame 自定义渲染方式,调用ActiveX

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Google Chrome Frame 自定义渲染方式,调用ActiveX 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過meta段的設置可以控制瀏覽器的渲染行為,但在一些特殊情況下,meta段的設置無效,我們需要額外的操作以達到目的。

模式1:頁面A(IE)iFrame引用頁面B(Chrome Frame)

問題描述
在IE渲染的頁面A中,使用iframe引用的頁面B即使添加了meta信息也不會使用Chrome Frame渲染。
解決方法
CFInstance.js(見文檔附件)同樣是由Google提供的開源源代碼,幫助我們更靈活的使用Chrome Frame。在頁面A中引入CFInstance.js,頁面加載完畢后調用new CFInstance()。其返回一個內部使用Chrome Frame渲染的Object對象。最后將該對象添加至A頁面目標位置(刪除原iframe,不再需要)。示例代碼如下:

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(Chrome Frame)iFrame引用頁面B(IE)

在Chrome Frame渲染的頁面A中,使用iframe引用的頁面B(無論是否添加了meta段)也將使用Chrome Frame渲染。
解決方法
調整頁面結構,增加框架頁C(使用IE渲染)。將頁面A、B分別使用new CFInstance和iframe方式引入并布局在框架頁C中,頁面結構如下:

模式3:頁面A(Chrome Frame)Open頁面B(IE)

問題描述
在Chrome Frame渲染的頁面A中,調用window.open打開的頁面B(無論是否添加了meta段)也將使用Chrome Frame渲染。
解決方法
調整頁面結構,增加框架頁C(使用IE渲染)。通過new CFInstance方式將頁面A引入框架頁C,在頁面A中調用框架頁C的open方法打開頁面B。這時頁面B將使用IE渲染。頁面結構如下:

在頁面A中調用框架頁C的open方法時,不能簡單的通過window.parent.open方式實現,需要借助CFInstance的rpc實現跨瀏覽器通訊。示例代碼如下:

//框架頁C代碼示例 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); } //頁面A代碼示例 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); }

模式4:頁面A(Chrome Frame)使用 ActiveX

問題描述
如何在Chrome Frame渲染的頁面中使用ActiveX。
解決方法
不推薦在Chrome Frame渲染的頁面中使用ActiveX,需要確保使用ActiveX控件的頁面由IE渲染。
存疑的備選解決方法
ActiveX for Chrome是一款專門為Chrome瀏覽器開發的擴展程序,其目的是為了在Chrome瀏覽器中可以直接使用ActiveX控件。但該項目已經很長一段時間沒有更新。在本次項目中,經過實際測試,其并不能很好的為所有ActiveX控件提供支持。因此,如果使用ActiveX for Chrome,一定要進行全功能覆蓋測試。
項目地址:http://code.google.com/p/np-activex/

參考資料:http://wiki.bsdn.org/pages/viewpage.action?pageId=50070010

js下載:CFInstall.js? ??CFInstance.js

轉載于:https://www.cnblogs.com/onlywujun/p/5742817.html

總結

以上是生活随笔為你收集整理的Google Chrome Frame 自定义渲染方式,调用ActiveX的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。