如何讓網頁上的Flash視訊在彈出視窗中播放
這是如何做到的呢?
首先想到的是,瀏覽器縮放縮放了頁面的大小,正好可以顯示視訊視窗的大小。好像火狐有一個魔鏡功能,可以實現網頁簡報既擷取網頁任意部分。 要做到這點,瀏覽器的外框程式必須是自己寫的(國內的瀏覽器都是這樣的)。如果瀏覽器不是自己的,能不能通過BHO來實現呢?
另一個想法是,把頁面裡視訊相關的HTML程式碼提取出來,然後在一個新頁面框架裡顯示。但是這樣的話,就必須對頁面程式碼的結構非常熟悉,而且必須跟隨變化。還有,當新視訊視窗彈出時,播放進度是不能保持的,必須重頭播放。
其實有一個簡單的辦法,那就是把頁面裡的Flash控制元件重新啟用到另一個視窗上。因為我們知道,Flash其實是一個ActiveX控制元件,執行在IE容器裡。如果我們建立一個新的Ole Container,就可以把Flash控制元件啟用到新的Container裡。這樣,Flash控制元件就可以在保持狀態的情況下在不同的容器之間轉換,既自由的在頁面和彈出視窗中切換。
所以,要彈出(IE)頁面裡的Flash視訊,需要以下幾步:
1. 通過Web Browser控制元件或者BHO,在頁面載入完成後得到頁面的DOM模型,找到Embed節點物件,即可查到Flash空間。
2. 建立Ole容器,比如ATL的CAxWindow
3. 啟用Flash控制元件到新的Ole容器
程式碼片段(基於ATL):
//pFlashDisp為Flash控制元件物件,通過分析頁面DOM獲得 //儲存IE容器,用於恢復 CComQIPtr<IOleObject> spFlashOleObj = pFlashDisp; spFlashOleObj->GetClientSite(&m_spIESite); //必選先關閉,才能轉移到新的視窗上 spFlashOleObj->DoVerb(OLEIVERB_HIDE, NULL, m_spIESite, 0, NULL, NULL); spFlashOleObj->Close(OLECLOSE_NOSAVE); //建立新的Ole容器(ATL的CAxWindow類) CRect clientRect; GetClientRect(&clientRect); m_HostWin.Create(m_hWnd, &clientRect, NULL, WS_CHILD); CComPtr<IAxWinHostWindow> spHost; m_HostWin.QueryHost(&spHost); //使得Flash可以查詢到IE提供的IServiceProvider,比如可以開啟新的網頁 CComQIPtr<IObjectWithSite> spObjWithSite; m_HostWin.QueryHost(IID_IObjectWithSite, (void**)&spObjWithSite); spObjWithSite->SetSite(pOuterSite); //啟用到新容器, m_hWnd為m_HostWin的父視窗 spHost->AttachControl(spFlashOleObj, m_hWnd);
相關推薦
如何讓網頁上的Flash視訊在彈出視窗中播放
很多瀏覽器都有這個功能,當你把滑鼠移動到網頁視訊上,就可以看到頂部有一個按鈕出現,彈出獨立播放器。當你點選按鈕,視訊就彈出在新視窗播放了,這時候視訊視窗的大小可以自由調整不再受頁面的限制。 這是如何做到的呢? 首先想到的是,瀏覽器縮放縮放了頁面的大小,正好可以顯示視訊視窗的大小。好像火狐有一個魔鏡功能,可以
ArcGIS API for Silverlight開發中滑鼠左鍵點選地圖上的點彈出視窗及右鍵點選彈出快捷選單的實現程式碼
1、首先在SL專案中新增一個抽象類ContextMenu.cs檔案,程式碼如下:using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.
HTML-通過點選網頁上的文字彈出QQ新增好友頁面
在網上參考了部分方法,綜合了一下。 發現有2中方式: 第一種是不能直接彈出新增介面的,只能彈出網頁,再通過網頁中的新增好友才能新增: 彈出的網頁是這樣的(我是寫成在新的網頁中開啟) 現在看實現的程式碼: <html> <
detailview按鈕列 點選彈出視窗中使用datagrid
$(function(){ $('#dg').datagrid({ title:'test', view:detailview, remoteSort:false, sin
彈出視窗中重新整理父頁面中的iframe中包含的頁面
<iframe src="1.htm" name="ifrmname" id="ifrmid"></iframe> 方案一:用iframe的name屬性定位 <input type="button" name="Button" value="Button" oncl
SweetAlert讓訊息彈出視窗更加具有個性化!
SweetAlert SweetAlert是指可對JavaScript標準功能的alert()及confirm()的彈出視窗進行個性化定製的庫。 SweetAlert的要點 官網上有很多示例,看了這些基本上就OK了。但是,在kintone上使用時,【彈出訊息後更新頁面】這個處理只參照示例來寫的
在HTML網頁中設定彈出視窗的辦法
【1、最基本的彈出視窗程式碼】 其實程式碼非常簡單: <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html') --> </SCRIPT> 因為這是一段javascrip
lhgdialog彈出視窗再彈出一級視窗時,二級視窗在一級視窗下面,如何讓他到一級視窗上面?
一級視窗頁面就不給大家提供了,二級視窗頁面如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/
通過網頁修改activex安全設定,新增信任站點,禁用彈出視窗阻止程式
//新增信任站點ipWshShell.RegWrite("HKCU//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Ranges//Range100//","");WshShell.RegWrite("HKC
如何讓彈出視窗自適應圖片的大小
解決思路: 主要思路是用window.open()方法開啟一個視窗,然後再根據圖片的大小resizeTo()視窗大小,必要時再用moveTo()方法調整視窗位置。現在問題在於如何獲取圖片的大小。 具體步驟: 方法一。我們知道,DHTML裡有個Image()物件,只要設定圖片源
點選彈出視窗,在視窗中播放視訊文…
<!--視訊彈出樣式開始--> <LINK rel=stylesheet type=text/css href="js/lightwindow.css"> <SCRIPT language=JavaScript type=text/javascript src="js/4
解決安卓手機上軟鍵盤彈出擠壓背景的問題
彈出 鍵盤 color col 軟鍵盤 func class div res demo: // 解決本頁面軟鍵盤彈窗背景擠壓的問題 var clientHeight = document.documentElement.clientHeight || documen
Skyline Terra Explorer6.6彈出視窗實現複製功能
前段時間繼續下來的基於Skyline的B/S專案,是基於Terra Explorer6.6實現的。專案中涉及到基於三維模型查詢裝置編碼等操作,從使用者友好角度來講,查詢到的裝置編碼應該要支援複製,方便使用者基於編碼的二次查詢和操作。 1. Terra Explorer彈出視窗限制 通常來說,在瀏覽器中複製
關於彈出視窗的設定
<dx:ASPxPopupControl ID="ASPxPopupControl1" runat="server" CloseOnEscape="True" Modal
Android彈出視窗
protected void PopUp() { final PopupWindow popup = new PopupWindow(TestActivity.this); View popView = LayoutInflater.from(TestA
fancybox關閉彈出視窗parent fancybox close
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
自定義彈出視窗
第一步:建立視窗0,並拖拽3個按鈕 第二步:建立視窗1,設定屬性“背景”,“大小” 第三步:建立變數,ButtonNumber 用於標記屬於哪個按鈕執行的視窗 第四步:對應的指令碼指令碼事件如下 (1)視窗0 ==> 按鈕“視窗1”==>事件==&g
1007 設定datawindow彈出視窗用於複雜欄位編
1:業務需求,某個欄位的編輯過成需要通過複雜的邏輯才能得出編輯的結果(計算器,評分等) 2:設定tag <popupeditorwithdw col4return="mdltitle" col4sqlwhere="sqlwhere" col4editordwo="editordwo" editorc
selenium +python 如何得到彈出視窗
# 獲取當前的頁面視窗 first_handle = brower.current_window_handle handles = brower.window_handles for i in handles: if i != first_handle: brower.close()
高仿element-ui自定義上角標彈出框
最近要寫個彈框,發現element-ui彈框樣式還可以,就copy下來改吧改吧。 html程式碼 <!--彈框--> <div class="el-dropdown-menu el-popper" :style="'position: absolute; top: