You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android onBackPressed中调用JS匹配所有id含sdf_前缀元素并触发点击问题

解决方案

你只需要修改webView.loadUrl中的JavaScript逻辑即可,修改后的完整代码如下:

@Override
public void onBackPressed() {
    if (Config.EXIT_APP_BY_BACK_BUTTON_ALWAYS) {
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("javascript:(function(){"+
                // 匹配所有id前缀为sdf_的元素
                "var targetList = document.querySelectorAll('[id^=\"sdf_\"]');"+
                // 遍历所有匹配元素逐个触发点击
                "for(var i = 0; i < targetList.length; i++){"+
                "   var event = document.createEvent('HTMLEvents');"+
                "   event.initEvent('click', true, true);"+
                "   targetList[i].dispatchEvent(event);"+
                "}"+
                "})()");
    }
}

逻辑说明

  • 用CSS属性选择器[id^="sdf_"]实现前缀匹配,querySelectorAll会返回所有符合条件的DOM元素集合
  • 如果你不需要兼容特别老旧的浏览器版本,可以简化JS逻辑,直接调用元素自带的click()方法,代码更简洁:
    document.querySelectorAll('[id^="sdf_"]').forEach(item => item.click())
    

内容的提问来源于stack exchange,提问作者Jarosław Król

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:45:03