flexpaper滚动的时候禁止浏览器滚动
最近做一个项目,需要使用flexpaper来做pdf在线浏览,但是每当鼠标滚轮在flash部位滚动的时候,整个页面也开始滚动起来,特别是chrome浏览器更是坑爹,花了好半天才找出勉强解决的方法,分享一下代码,如有更好的解决方案,求求给我建议。
1 var isFF = window.navigator.userAgent.toLowerCase().indexOf('firefox'); 2 var isChrome = window.navigator.userAgent.indexOf("Chrome"); 3 var mousewheel=function(event) 4 { 5 var event = event ? event : window.event; 6 var obj = event.srcElement || event.target; 7 8 if(obj.type == "application/x-shockwave-flash" || obj.type == ""){ 9 if($FlexPaper().getCurrPage()<$FlexPaper().getTotalPages()+1){ 10 if(document.all){ 11 event.cancelBubble = true; 12 event.returnValue = false; 13 event.preventDefault(); 14 event.stopPropagation(); 15 }else if(isChrome>0){ 16 document.body.style.overflow="hidden"; 17 event.stopPropagation(); 18 }else{ 19 event.preventDefault(); 20 event.stopPropagation(); 21 } 22 } 23 24 } 25 } 26 27 function onloaded(){ 28 document.getElementsByTagName('object')[0].focus(); 29 document.getElementsByTagName('object')[0].onmouseover = function(){ 30 this.focus(); 31 } 32 if(isFF > 0){ 33 document.body.addEventListener("DOMMouseScroll", mousewheel, false); 34 }else if(isChrome >0){ 35 document.body.style.overflow="hidden"; 36 document.getElementsByTagName('object')[0].onmousewheel=mousewheel; 37 document.body.onmousewheel = function(){ 38 document.body.style.overflow='auto'; 39 } 40 document.body.onclick = function(){ 41 document.body.style.overflow='auto'; 42 } 43 }else{ 44 document.body.onmousewheel=mousewheel; 45 } 46 47 48 } 49 50 window.onload = function(){ 51 onloaded(); 52 }