Webview iframe overflow

心不动则不痛 提交于 2019-11-30 03:31:22

Tony. In my opinion, the key point of this trick is that you have to fix the height of the iframe. Then you can apply the iscroll to any div element in the iframe. Here is a small code snippet:

    // disable default touchmove handler
    document.addEventListener('touchmove', function(e){
        e.preventDefault();
    });
    // make the div 'list' scrollable
    var myScroll = new iScroll('list'); // <div id='list'>Blah</div>

I use jQuery in the code and it works well with iScroll.

Felix Chan

I found out a way to avoid this nasty problem. I've disabled the scrolling bar of iframe, and use iscroll in the application instead. This scrolling bar is nearly the same as the original one, though slower on my HTC Magic phone.

I was trying to show an Iframe in my apps WebView, I had the problem of not being able to chop off the bottom 30px of my iframe using CSS 'overflow:hidden;'. The way I got around this was to make my own index.html file and save it locally as an asset within my app.

If you don't have an 'assets' folder within your project, go to step 1

(this is not the same as the 'res' folder)

[On Windows 7]

Step 1 - Make assets folder: In your Android Studio project click:

File --> New --> Folder --> Assets Folder

Image showing how to make assets folder in Windows

Step 2 - Make the index.html that will hold your <iframes> within a <div> You can copy the code below to use as sample code in your index.html file:

<!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <meta charset="utf-8" />
    </head>
    <body style="margin:0px;">
        <div style="width:605px;height:875px;overflow:hidden;">
           <iframe src="https://docs.google.com/presentation/d/1QyNNURCVBme50SAuIceq3sh7Ky74LuWNeEM8B910aC4/embed?start=true&loop=true&delayms=2000" scrolling="no" frameborder="0" width="605" height="905" allowfullscreen="false" mozallowfullscreen="false" webkitallowfullscreen="false"></iframe>
        </div>
    </body>
</html>

Step 3 - Call the index.html file in your WebView

Note--(Id of this example WebView is 'main_ad', change this id what what ever you named your webviews id)

WebView webView = (WebView) findViewById(R.id.main_ad);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("file:///android_asset/index.html");  //this is why you needed the assets folder
webView.getSettings().setJavaScriptEnabled(true);

Hope this helps even 1 person working with webviews and iframes

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!