【问题标题】:Javascript: How to get Browser Zoom level using third party [duplicate]Javascript:如何使用第三方获取浏览器缩放级别[重复]
【发布时间】:2013-04-11 17:37:51
【问题描述】:

如何在所有已知浏览器中获取浏览器缩放级别? 这是How to detect page zoom level in all modern browsers? 的新解决方法

想法是使用flash或HTML5 Canvas来寻找解决方案。

目前找到了一种使用闪存的解决方案。

【问题讨论】:

    标签: javascript flash browser


    【解决方案1】:

    您需要像这样使用 JavaScript 桥创建一个 flash 文件:

    [SWF(width='100',height='100')]
    public class SizeHack extends Sprite
    {
        public function SizeHack()
        {
            if(stage){
                onAddToStage();
            }
            else{
                addEventListener(Event.ADDED_TO_STAGE, onAddToStage);
            }
        }
    
        protected function onAddToStage(event:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, onAddToStage);
    
            // security settings to allow scripting between domains
            Security.allowDomain("*");
            Security.allowInsecureDomain("*");
    
            // register to javascript
            ExternalInterface.addCallback("getSize", onSizeRequet);
    
            // stage scale mode must be noscale
            stage.scaleMode = StageScaleMode.NO_SCALE;
        }
    
        private function onSizeRequet():Number
        {
            if(!stage){
                return 0;
            }
            return stage.stageHeight;
        }
    }
    

    然后在你的 JavaScript 中:

    <script type="text/javascript">
        swfobject.registerObject("FlashResizer", "10.0.0");
    
        function getBrowserZoom()
        {
            return swfobject.getObjectById("FlashResizer")
                .getSize();
        }
    </script>
    
    <div id="flashResizerDiv" style="position: absolute; display: block; height: 100px; width: 100%; top: 0; left: 0;">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100" id="FlashResizer">
            <param name="movie" value="resizer.swf" />
            <!--[if !IE]>-->
                <object type="application/x-shockwave-flash" data="resizer.swf" width="100%" height="100">
                <!--<![endif]-->
                <a href="http://www.adobe.com/go/getflashplayer">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                </a>
                <!--[if !IE]>-->
                </object>
            <!--<![endif]-->
        </object>
    </div>
    

    现在当您调用getBrowserZoom() 时,您将获得浏览器的精确缩放。

    【讨论】:

    • 获得未缩放的高度而不是浏览器缩放级别。你需要做更多的数学运算。你的其余代码在哪里?
    猜你喜欢
    • 2011-05-07
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2021-10-10
    相关资源
    最近更新 更多