關於禁止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()函式。
這就是我選擇的方法,其實最理想的方式是,到控制面板的觸控設定上,設定單點觸控是最好的。
有什麼好的方法,大家可以一起討論哈。