HarmonyOS ArkWeb向加载的移动web页面注入代码隐藏某些组件,更改某些组件的颜色?

代码如下:

private hidePrivacyJs: string =
  "window.document.getElementById(\"login-view-all\").style.display = 'none';";
@State scripts: Array<ScriptItem> = [
  { script: this.hidePrivacyJs, scriptRules: ["*"] }
]

Row() {
  Web({ src: this.webUrl, controller: this.controller })
    .domStorageAccess(true)//开启文档对象模型存储接口
    .fileAccess(true)//文件系统访问
    .javaScriptAccess(true)//允许执行js脚本,默认true
    .mixedMode(MixedMode.All)//允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容
    .zoomAccess(true)//手势缩放
    .javaScriptOnDocumentEnd(this.scripts)
    .onLoadIntercept((event) => {
      //返回true表示阻止此次加载,否则允许此次加载
      LogUtil.debug('=== onLoadIntercept-url:' + event.data.getRequestUrl())
      let url = event.data.getRequestUrl()
      return false
    })
    .onSslErrorEventReceive((event) => {
      event.handler.handleConfirm()
      LogUtil.debug('===onSslErrorEventReceive');
    })
}

使用该代码无效。

阅读 484
1 个回答

html代码中用的是class,建议将hidePrivacyJs代码替换成:

private hidePrivacyJs: string = "window.document.querySelector(".login-view-all").style.display = 'none';"