【问题标题】:how to delete an element in xamarin forms webview如何删除xamarin表单webview中的元素
【发布时间】:2020-01-05 01:38:21
【问题描述】:

我想在 Xamarin.forms WebView 加载时删除一个元素,但它返回 null 和应用程序崩溃。我怎样才能做到这一点? 我试图检查一个元素是否存在但没有任何成功。 这是我的代码

protected void OnNavigating(object sender, WebNavigatingEventArgs args)
    {



        Webview.Eval("const elements = document.getElementsByClassName(\"footer-section\"); while (elements.length > 0) elements[0].remove();");


    }

请帮助我。谢谢

【问题讨论】:

    标签: android xamarin.forms webview


    【解决方案1】:

    您得到一个空异常,因为当您尝试执行 Javascript 时未加载 WebView。

    为了防止这种情况,你可以订阅OnNavigated Event:

    WebView.Navigated 事件

    导航完成后引发的事件。

    所以,这里是一个示例:

    public YourWebViewPage()
    {
        InitializeComponent ();
    
        Webview.Navigated += WebViewNavigated;
    }
    
    private void WebViewNavigated(object sender, WebNavigatedEventArgs e)
    {
       Webview.Eval("const elements = document.getElementsByClassName(\"footer-section\"); while (elements.length > 0) elements[0].remove();");
    }
    

    【讨论】:

    • 我以前使用过它,但我想在它消失时删除该元素。我的意思是我不希望用户看到那个元素突然消失了。我想在该元素显示并且页面仍在加载之后立即删除该元素。谢谢
    【解决方案2】:

    您可以尝试覆盖函数onPageCommitVisible Android 文档说:

    此回调可用于确定安全点 使回收的 WebView 可见,确保没有陈旧的内容 显示。它在最早的时候被调用 保证 WebView#onDraw 将不再从中绘制任何内容 以前的导航。下一次抽奖将显示 WebView#setBackgroundColor 的WebView,或者部分内容 新加载的页面。

    该方法在 HTTP 响应正文开始时调用 加载,反映在 DOM 中,在后续可见 画。此回调发生在文档加载过程的早期,并且 因此,您应该期望链接资源(例如,CSS 和 图片)可能不可用。

    你可以试试下面的代码:

    public override void OnPageCommitVisible(WebView view, string url)
         {
            string _javascript = "const elements = 
    document.getElementsByClassName('footer-section'); for(i=0;i<elements.length;i++) { 
    if(elements[i] != null){ elements[i].parentNode.removeChild(elements[i]); }}";
    
            view.EvaluateJavascript(_javascript, null);
            base.OnPageCommitVisible(view, url);
        }
    

    【讨论】:

    猜你喜欢
    • 2018-12-04
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多