gpt4 book ai didi

flutter - 如何在 Flutter WebView 中注入(inject)一个简单的代码来隐藏网站的一部分(页脚)?

转载 作者:行者123 更新时间:2023-12-01 13:12:09 24 4
gpt4 key购买 nike

我是 Flutter 的新手,目前,我正在制作一个非常简单的应用程序,它只是一个 WebView。我的问题是如何将此代码插入到我的 Flutter WebView 中?

footer#footer, div#st_notification_1, #sidebar_box {
display: none!important;
}

目前,我正在尝试在我的一个应用程序选项卡上使用 Flutter 团队的 WebView 插件。我试图加载和隐藏页脚的网站是:

Syncshop

下面是我试图隐藏页脚的那个标签 Webview 的代码

更新:已修复。下面的代码对我有用
注意:我也重新检查了网站并更改了 getElementsByIdgetElementsByClassName对应上面网站页脚的类名。

注2:Flutter 包中有很多 WebView 应用,我使用的是 Flutter 团队的 Flutter Webview。
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

class ProfileAccount extends StatefulWidget {
ProfileAccount({Key key}) : super(key: key);

@override
_ProfileAccountState createState() => _ProfileAccountState();
}

class _ProfileAccountState extends State<ProfileAccount> {
WebViewController _myController;
final Completer<WebViewController> _controller =
Completer<WebViewController>();
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: WebView(
initialUrl: 'https://syncshop.online/en/login',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (controller) {
_myController = controller;
},
onPageFinished: (initialUrl) {
_myController.evaluateJavascript("document.getElementsByClassName('footer-container')[0].style.display='none';");
},
)
),
);
}
}

最佳答案

你可以试试

flutterWebviewPlugin.evalJavascript('alert("Hello World")')
请记住 evalJavascript()预计 JS不是 HTML , 所以你不能用like
flutterWebviewPlugin.evalJavascript('<script language="JavaScript" type="text/javascript">alert("Hello World")</script>')
这是供您引用的完整示例,
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

class JSInWebView extends StatefulWidget {
@override
JSInWebViewState createState() {
return new JSInWebViewState();
}
}

class JSInWebViewState extends State<JSInWebView> {
final flutterWebviewPlugin = new FlutterWebviewPlugin();
// alternatively you can define variable as var js = "YOUR_SCRIPT"; and use it inside evalJavascript

@override
void initState(){
super.initState();
flutterWebviewPlugin.evalJavascript("alert('Hi, I just executed')");
}

@override
void dispose() {
flutterWebviewPlugin.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
return WebviewScaffold(
url: 'https://google.com',
hidden: true,
appBar: AppBar(title: Text("Elite")),
);
}
}

关于flutter - 如何在 Flutter WebView 中注入(inject)一个简单的代码来隐藏网站的一部分(页脚)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59261662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com