1. 程式人生 > >關於禁止webbrowser在觸屏電腦上的縮放,找了很多方法,現在總結一下

關於禁止webbrowser在觸屏電腦上的縮放,找了很多方法,現在總結一下

第一種就是在網頁開始處,加上下面這句話:

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />

但是這句話是在手機平臺或者能夠使用html5的平臺上能夠使用,所以這個方法對我來說沒有作用。

還有第二種:

就是開啟策略組,開始-> 執行->輸入 gpedit.msc,然後開啟管理模組->windows元件->Internet Explorer中的禁用頁面縮放功能,選擇禁用,就可以了。

但是當我用觸屏再實驗縮小時,發現會讓我的程式奔潰,估計產生衝突了吧,所以這個方法也不行。

第三種:

就是加上js程式碼,與之前的策略組的最後的效果相同,程式碼如下:


<script language="javascript">
 var scrollFunc=function(e){
  e=e || window.event;
  if(e.wheelDelta && event.ctrlKey){//IE/Opera/Chrome
   event.returnValue=false;
  }else if(e.detail){//Firefox
   event.returnValue=false;
  }
 } 
 
 /*註冊事件*/
 if(document.addEventListener){
 document.addEventListener('DOMMouseScroll',scrollFunc,false);
 }//W3C
 window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari
 
</script>

這種方法就是使瀏覽器ctrl+滑鼠左鍵,不能放大縮小。

第四種方式:

form_load(){timer1.start();}

 private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();
            if (webBrowser2.Bounds.Contains(this.PointToClient(Cursor.Position)))
            {
                
                Click1(sender, e);
            }
            timer1.Start();
        }


        private int v = 100;
        private void Click1(object sender, EventArgs e)
        {
            try
            {
                v = 100;//相當於網頁的100%
                object value = v;
                object obj = null;
                SHDocVw.WebBrowser axBrowser = (SHDocVw.WebBrowser)this.webBrowser2.ActiveXInstance;
               axBrowser.ExecWB(SHDocVw.OLECMDID.OLECMDID_OPTICAL_ZOOM, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref value, ref obj);

                        }
            catch
            { }
        }
使用計時器來檢測webbrowser上的滑鼠是否有移動,有移動則恢復原狀執行click1()函式。

這就是我選擇的方法,其實最理想的方式是,到控制面板的觸控設定上,設定單點觸控是最好的。

有什麼好的方法,大家可以一起討論哈。