mod-proxy-html 相关问题


使用python的mechanize自动网站登录

我正在尝试自动登录一个网站,该网站的登录表单具有以下 HTML 代码(摘录): 我正在尝试自动登录一个网站,其登录表单具有以下 HTML 代码(摘录): <tr> <td width="60%"> <input type="text" name="username" class="required black_text" maxlength="50" value="" /> </td> <td> <input type="password" name="password" id="password" class="required black_text" maxlength="50" value="" /> </td> <td colspan="2" align="center"> <input type="image" src="gifs/login.jpg" name="Login2" value="Login" alt="Login" title="Login"/> </td> </tr> 我正在使用python的mechanize模块进行网页浏览。以下是代码: br.select_form(predicate=self.__form_with_fields("username", "password")) br['username'] = self.config['COMMON.USER'] br['password'] = self.config['COMMON.PASSWORD'] try: request = br.click(name='Login2', type='image') response = mechanize.urlopen(request) print response.read() except IOError, err: logger = logging.getLogger(__name__) logger.error(str(err)) logger.debug(response.info()) print str(err) sys.exit(1) def __form_with_fields(self, *fields): """ Generator of form predicate functions. """ def __pred(form): for field_name in fields: try: form.find_control(field_name) except ControlNotFoundError, err: logger = logging.getLogger(__name__) logger.error(str(err)) return False return True return __pred 不知道我做错了什么...... 谢谢 该网站有可能在登录期间使用java脚本进行回发。我记得很清楚,对于 ASP .Net 站点,您需要获取隐藏表单字段,例如 VIEWSTATE 和 EVENTTARGET 并将它们发布到新 Page 。 您为什么不发送问题网站的链接?之后就变得相对容易弄清楚了 尝试使用 Selenium 和 PhantomJS from selenium import PhantomJS import platform if platform.system() == 'Windows': # .exe for Windows PhantomJS_path = './phantomjs.exe' else: PhantomJS_path = './phantomjs' service_args = [ # Proxy (optional) '--proxy=<>', '--proxy-type=http', '--ignore-ssl-errors=true', '--web-security=false' ] browser = PhantomJS(PhantomJS_path, service_args=service_args) browser.set_window_size(1280, 720) # Window size for screenshot (optional) login_url = "<url_here>" # Credentials Username = "<insert>" Password = "<insert>" # Login browser.get(login_url) browser.save_screenshot('login.png') print browser.current_url browser.find_element_by_id("<username field id>").send_keys(Username) browser.find_element_by_id("<password field id>").send_keys(Password) browser.find_element_by_id("<login button id>").click() print (browser.current_url) browser.get(scrape_url) print browser.page_source browser.quit() ''' python 和 pycharm 设置路径变量 点维辛检查 包管理器 python 如何安装新版本 python最新版本 - python 3.7.2 用户环境变量 蟒蛇 pyton 中的命令行 '''


为什么“keyof”对类构造函数返回的 Proxy() 内的泛型类型不起作用?

我在 Proxy() 内结合使用泛型类型和 keyof 时遇到问题: 下面的示例代码不起作用,并抱怨没有任何可分配的类型: 接口 SomeDataStruct...


射频接收器(433 mhz)可以在没有像arduino UNO、NANO、ESP8266等微控制器的情况下接收射频......?

我已经使用 ESP8266 MOD 设备成功控制 LED 灯泡。不过,我现在的目标是无线控制 LED 灯泡。我的计划是使用连接到 ESP8266 MOD 的 RF 发射器和...


将代理设置为 selenoid webdriver

我使用网络驱动程序连接到硒化物容器 从硒导入网络驱动程序 从 selenium.webdriver.common.proxy 导入代理,代理类型 proxy = '代理地址' 链接 = '2ip.ru' 能力=...


带有 nginx-proxy 的 Docker:不允许附加属性名称

从 ubuntu 18 升级到 Ubuntu 20.04.6 LTS 后 Docker 停止工作 我正在使用 docker-compose 但它完全停止工作。所以我切换到“docker compose” 我现在正在尝试...


API 网关调用 Lambda {proxy+} 函数 - 内部服务器错误

我有一个具有以下 API 端点的 API 网关: 当我尝试测试它时,出现以下错误: 请求:/connect/list_users 状态:500 延迟:29 毫秒 响应体 {“message”:“国际米兰...


将补丁一分为二(最好是在 Vim 中)

我有一个补丁,我想将其分成两个补丁。我需要以每行粒度分割补丁——我不能只是将块分割成两个单独的文件。 我可以使用 Emacs diff mod...


使用 ReverseProxy + ModSecurity 在 Apache 中进行虚拟主机配置

我已经在apache2中使用反向代理+Mod安全设置了虚拟主机配置。 但它重叠,重新启动 apache2 时不会给出任何错误,但第二个 虚拟主机配置是


如何将整数(解)列表转换为连续区间列表

我使用CLP(FD)和SWI-Prolog编写了一个CSP程序。 有些约束看起来像 Xi mod N #= 0,所以我必须为每个变量 Xi 调用 res(Xi,Li) (使用 res(X,L) :- setof(X, indomain(X), L))。 ..


有没有一个函数可以获取 Windows 上文件的真实且区分大小写的路径?

我正在为游戏创建 std::filesystem Lua 绑定,并且我想确保稍后使用该绑定的 mod 不依赖于 Windows 的大小写不敏感。 例如,fopen("foo.txt&


Visual Studio Code 中的 Git 嵌套存储库

在一个改装项目中,我有一个包含我所有东西的顶级存储库。然后有一个我分叉的脚本包的嵌套存储库。因为它是独立的,所以我想将它与我的 mod pro 分开......


WPF:为什么绑定模式OneWay没有调用回调函数?

我创建了一个带有一些属性的自定义控件,所有这些似乎都正常工作。 但经过一些测试,我发现了一种我不明白的奇怪行为。当我在 OneWay mod 中绑定属性时...


通过线性探测实现调整哈希表大小的时间复杂度

我已经阅读了一些文章,但仍然不清楚这个问题的答案。 假设我是否需要调整通过线性探测实现的哈希表的大小(即 h(x) = ((hash(x) mod 哈希表容量) + 1)


无法使 xpath 适用于 HTML 代码块

我有这个html块: 取消 我写了以下 xpath t...



使用 Html Purifier 从提交的 html 页面内容中提取样式块

如何使用html净化器提取这样的块样式。 我尝试使用下面的代码从 html 内容中提取样式。 但我不能; $config = \HTMLPurifier_Config::createDefault(); $


Django-channels 实例关闭时间过长而被杀死

谁能告诉我可能是什么问题? 警告应用程序实例 谁能告诉我可能是什么问题? 警告应用程序实例 wait_for=> 连接 关闭时间过长并被终止。 我的阿斯吉 "^subscription", channels_jwt_middleware(MyConsumer.as_asgi(schema=schema)) ) application = ProtocolTypeRouter({ "http": django_asgi_app, "websocket": QueryAuthMiddleware( URLRouter([ subscription_url, ]) ), })``` my custom MyConsumer ```class MyConsumer(GraphQLWSConsumer): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.profile_id = None async def __call__(self, scope, receive, send): user = scope.get("user", None) time_zone = await get_current_timezone(user) self.profile_id = scope.get("active_profile_id", None) self.timezone = time_zone if time_zone else settings.TIME_ZONE await super().__call__(scope, receive, send) async def connect(self): await super().connect() await change_status(True, self.profile_id) async def disconnect(self, close_code, *args, **kwargs): await super().disconnect(close_code) await change_status(False, self.profile_id)``` 解决我的问题 daphne -b 0.0.0.0 -p $SERVER_PORT --application-close-timeout 60 --proxy-headers server.asgi:application


使用 R 读取 html 格式的表格

我使用rvest::read_html读取html格式的表格。 html 文件只是一个表格。 这是我的代码。 图书馆(rvest) pp = read_html("Batch1_Parameters.html") %>% html_table() 噗……


内容安全策略不适用于 html

我已经在nodejs中设置了内容安全策略(CSP),并且它正在应用于node。但是,对于根 html 页面,未应用 CSP。如何借助nodejs应用在html上......


WKWebView 加载本地 html 比 UIWebView 慢

我有 UIWebView、WKWebView 和 loadHTMLString:baseURL: 来加载本地 HTML,但 wkWebView 比 UIWebVIew 慢。是什么原因?如何提高渲染速度?


在JS中解析JSON字符串[已关闭]

在JS文件中我有: {html: '测试代码 HTML', css: '测试代码 CSS'} 我如何解析它以获得 html 和 css 的值? 这是我尝试过的: const json = JSON.parse(数据); 反对...


如何在<script id="template" type="text/ractive">中语法高亮HTML?

是否有任何 Vs Code 扩展可以在内部语法高亮 HTML? <p>你好,世界!</p>


TypeScript 中的递归类型

假设我们尝试创建 HTML 构建助手 建造([ 'html', { lang: 'en' }, [ ['头', [ ['标题','你好,世界!'] ] ] ]) 构建的参数的类型声明...


如何打印 html 页面忽略响应式视图 css?

我想打印html页面,html页面是响应式的。在桌面上查看时打印的格式很好。但是,这里的问题是当使用移动设备时,打印的格式会与...


如何在 HTML 中将文本向右对齐并垂直居中?

我正在学习 HTML 和 CSS,并通过为个人页面编写一些 HTML 进行练习。我首先创建一个标题,将我的名字向右对齐,但文本是垂直的


如何将 elementref 选择器从对象绑定到 Angular 中的 html

我想以角度将对象中的 elementref 绑定到我的 html。我尝试的是: 或 并从 @ViewChild() 获取它...


如何在webview中加载html字符串?

我有一个包含以下内容的html字符串: 我有一个包含以下内容的html字符串: <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="spanish press" content="spain, spanish newspaper, news,economy,politics,sports"> <title></title> </head> <body id="body"> <!-- The following code will render a clickable image ad in the page --> <script src="http://www.myscript.com/a"></script> </body> </html> 我需要将该网站显示到 Android 中的网络视图中。 我尝试过这一切: webView.loadDataWithBaseURL(null, txt, "text/html", "UTF-8", null); webView.loadDataWithBaseURL("x-data://base", txt, "text/html", "UTF-8", null); webView.loadDataWithBaseURL("notreal/", txt, "text/htm", "utf-8",null); 我还尝试删除 DOCTYPE 标签: txt=txt.replace("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">", ""); 这些人都没有工作。我刚刚实现了将字符串显示到 webview(html 代码)中,但不是必须使用该 html 代码创建的网站。 出了什么问题? 在 WebView 中加载数据。调用WebView的loadData()方法 wv.loadData(yourData, "text/html", "UTF-8"); 你可以查看这个例子 http://developer.android.com/reference/android/webkit/WebView.html [编辑1] 您应该在 -- " 之前添加 -- \ -- 例如 --> name=\"spanish press\" 下面的字符串对我有用 String webData = "<!DOCTYPE html><head> <meta http-equiv=\"Content-Type\" " + "content=\"text/html; charset=utf-8\"> <html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1250\">"+ "<meta name=\"spanish press\" content=\"spain, spanish newspaper, news,economy,politics,sports\"><title></title></head><body id=\"body\">"+ "<script src=\"http://www.myscript.com/a\"></script>şlkasşldkasşdksaşdkaşskdşk</body></html>"; 你也可以试试这个 final WebView webView = new WebView(this); webView.loadDataWithBaseURL(null, content, "text/html", "UTF-8", null); 从资产 html 文件中读取 ViewGroup webGroup; String content = readContent("content/ganji.html"); final WebView webView = new WebView(this); webView.loadDataWithBaseURL(null, content, "text/html", "UTF-8", null); webGroup.addView(webView); 我有同样的要求,我是按照以下方式完成的。你也可以试试这个。 使用loadData方法 web.loadData(""" <p style='text-align:center'> <img class='aligncenter size-full wp-image-1607' title='' src="+movImage+" alt='' width='240px' height='180px' /> </p> <p> <center> <U> <H2>"+movName+"("+movYear+")</H2> </U> </center> </p> <p><strong>Director : </strong>"+movDirector+"</p> <p><strong>Producer : </strong>"+movProducer+"</p> <p><strong>Character : </strong>"+movActedAs+"</p> <p><strong>Summary : </strong>"+movAnecdotes+"</p> <p><strong>Synopsis : </strong>"+movSynopsis+"</p> """, "text/html", "UTF-8" ); movDirector movProducer 都是我的字符串变量。 简而言之,我保留了 URL 的自定义样式。 如果您正在 JetpackCompose 中寻找某些内容,这可以帮助您: @Composable fun HtmlTextVisualizerComponent(textFromData: String) { val mimeType = "text/html" val encoding = "UTF-8" LazyColumn( modifier = Modifier .padding( start = 24.dp, end = 24.dp, top = 16.dp, bottom = 24.dp, ), ) { items(1) { val state = rememberWebViewState( url = "data:$mimeType;$encoding,$textFromData", ) val navigator = rememberWebViewNavigator() WebView( state = state, modifier = Modifier.fillMaxSize(), navigator = navigator, onCreated = { it.settings.javaScriptEnabled = true }, ) } } } 一定不要忘记在你的 gradle 中添加依赖项: implementation "com.google.accompanist:accompanist-webview:0.30.1"


如何在flutter中查看android和web平台的html文件?

我正在创建一个可以在 android 和 web 平台上运行的 flutter 项目。 我在网络平台上查看 html 时遇到问题。 我使用了一个插件 webview_flutter 在 android 平台上查看 html 但是......


使用 HTML-ENTITIES 字符集替代 mb_convert_encoding

我有以下代码: mb_convert_encoding($string, 'HTML-ENTITIES', 'utf-8'); 我需要一个替代代码,其功能完全相同,但不使用任何 mb_* 函数(mb 扩展...


如何在Vue中使用insertAdjacentHTML生成自定义标签/元素(组件)

使用 insertAdjacentHTML 我可以制作 div、span 等 .. html 元素,但无法制作自定义标签 基本上insertAdjacentHTML可以生成html eleme...


尝试在vite构建中包含多个html页面

这工作正常,但是有没有更好的方法来处理所有 html 文件? // vite.config.js 从“路径”导入{解析}; 从“vite”导入{defineConfig}; 导出默认


一个js函数调用多个html canvas的draw和drawImage方法可以保存到单个Image对象中吗?

一个js函数调用多个html canvas的draw和drawImage方法可以保存到单个Image对象中吗? 一直在寻找一种方法来做到这一点。我正在考虑利用 html canvas cli...


一个组件上有两个 Html 模板

如何在两个 html 模板上绑定同一对象的属性,以防第二个模板与主(第一个)模板相关,如下所示: 导出类 ExampleNo2AddedHTMLComponent 扩展


如何访问 HTML 中没有 URL 的嵌入视频?

有人可以帮我获取此处嵌入的视频的链接吗? 我尝试检查页面并查看 HTML 元素或找到链接,但没有成功。


在四开中使用 html

我正在尝试使用Quarto构建一个简单的网站,我想知道如何在Quarto中使用html。 我想创建一个分为两个相等部分的页面。左边有...


在添加新行时刷新 html 可编辑表格 - Bootstable

我使用 boostable 插件在运行时内联编辑 HTML 行。该插件位于 https://www.jqueryscript.net/table/Editable-Tables-jQuery-Bootstrap-Bootstable.html。问题是现在当我想要的时候


将 Django 模型引入 HTML 表

我对 Django 非常陌生,正在开展我的第一个培训项目。 我想每个月记录一组仪表(水、电等),并且我想在 html 表中查看这些仪表...


通过 ng-bind-html 使用插入的 HTML 中的函数

我从数据库中获取了一个 HTML 字符串,我想通过 ng-bind-html 将其插入到我的 AngularJs 应用程序中。我是这样做的: HTML: <... 我从数据库中获取了一个 HTML 字符串,我想通过 ng-bind-html 将其插入到我的 AngularJs 应用程序中。我是这样做的: HTML: <div ng-bind-html="myBindHtml"></div> JavaScript: $scope.myBindHtml = $sce.trustAsHtml(htmlStringToInsert); 我的 HTML(我想插入)看起来像这样: <button ng-click="testClickEvent()">TestButton</button> 插件工作正常。 现在我编写了一个按钮应该调用的函数(testClickEvent)。这只是将一个字符串输出到控制台。 但这部分不起作用。我猜想我插入的 HTML 与该函数没有绑定。有什么办法可以调用我的函数吗? Angular 代码仅当您在 Angular 上下文中运行时才会执行。当您使用 ng-bind-html 时,它会在 Angular 上下文之外生成,因此像 ng-click 这样的 Angular 事件不起作用,您需要依赖像 onclick 这样的纯 JS 事件,因此请避免使用这些场景,而直接在 Angular 上进行编码,因为解决方案的复杂性! 当需要角度事件并且我们需要直接在前端编码而不是从数据库或其他方法输入时,我们可以避免ng-bind-html var app = angular.module('myApp', []); app.controller('myCtrl', function ($sce, $scope) { $scope.items = []; for (var i = 1; i <= 2; i++) { $scope.items.push({ description: $sce.trustAsHtml('<h2 onclick="console.log(\'hello\')">with onclick item ' + i + '</h2>') }); }; $scope.items2 = []; for (var i = 1; i <= 2; i++) { $scope.items.push({ description: $sce.trustAsHtml('<h2 ng-click="console.log(\'hello\')"> with ng-click item ' + i + '</h2>') }); }; }); <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.8.3/angular.min.js" integrity="sha512-KZmyTq3PLx9EZl0RHShHQuXtrvdJ+m35tuOiwlcZfs/rE7NZv29ygNA8SFCkMXTnYZQK2OX0Gm2qKGfvWEtRXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <div ng-app="myApp"> <div ng-controller="myCtrl"> <div> <div ng-repeat="item in items" ng-bind-html="item.description"></div> </div> <hr /> <div> <div ng-repeat="item in items2" ng-bind-html="item.description"></div> </div> </div> </div>


如何将 .url 文件书签的文件夹作为 HTML 文件导入(到 Safari 中)?

我想将 .url 文件的文件夹导入到 Safari 中,但 Safari 只支持 HTML 书签文件。我怎样才能进行这种转换?


创建 HTML 鼠标悬停工具提示的最简单方法是什么?

在不使用 JavaScript 的情况下创建 HTML 鼠标悬停工具提示的最简单、最简洁的方法是什么? 将鼠标悬停在...


xquery 输出为降价表

我知道如何以 HTML 格式输出 x-query 结果,请参阅例如XQuery 到 HTML 表:生成列 但我在互联网上找不到在降价表中输出的单个示例。 (Xquery 版本...


顺风未加载颜色

有简单的html: 公共/index.html: 有简单的html: public/index.html: <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="styles.css"> </head> <body class="text-red-600"> some text </body> css 是从 tailwindcss -i src/styles.css -o public/styles.css 获取的 src/styles.css: @tailwind base; @tailwind components; @tailwind utilities; tailwind.config.js: module.exports = { content: ["./src/**/*.{html,js}"], theme: { extend: {}, }, plugins: [], } <body>标签中的红色不适用。默认的顺风类别是否导入到public/styles.css? Tailwind 配置中的 public/index.html 文件似乎没有覆盖 content 文件。您必须确保使用 Tailwind 类的源代码文件被 content 文件 glob 覆盖,否则 Tailwind 将不会扫描这些文件,也不会为存在的类名生成 CSS 规则。考虑阅读有关配置的文档content。 module.exports = { content: [ "./src/**/*.{html,js}", "./public/index.html", ], theme: { extend: {}, }, plugins: [], }


PyQt5 QWebEngineView - 打开弹出窗口的问题

我正在开发一个 PyQt5 应用程序,它利用 QWebEngineView 加载 HTML 页面。 HTML 页面包含 JavaScript 代码,可打开用于输入值的弹出窗口。代码按预期工作


防止 HTML <dialog> 用 Vue 关闭

我正在尝试使用 Vue 以编程方式阻止 HTML 对话框元素的关闭事件关闭对话框。这是我正在使用的代码: 从“vue”导入{ref}; const 对话框模板Re...


将 Inno Setup Pascal Script TColor 转换为 HTML 十六进制颜色

Inno Setup Pascal Script 有颜色变量,如 Delphi 中的 clBtnFace、clYellow。 我想知道如何将这些 TColor 转换为 HTML 十六进制颜色。 例如,如果我将 clBtnFace 转换为...


Vue 3如何获取$children的信息

这是我在 Tabs 组件中使用 VUE 2 的旧代码: 创建(){ this.tabs = this.$children; } 标签: .... 这是我在 Tabs 组件中使用 VUE 2 的旧代码: created() { this.tabs = this.$children; } 标签: <Tabs> <Tab title="tab title"> .... </Tab> <Tab title="tab title"> .... </Tab> </Tabs> VUE 3: 如何使用组合 API 获取有关 Tabs 组件中子项的一些信息?获取长度,迭代它们,并创建选项卡标题,...等?有任何想法吗? (使用组合API) 这是我现在的 Vue 3 组件。我使用 Provide 来获取子 Tab 组件中的信息。 <template> <div class="tabs"> <div class="tabs-header"> <div v-for="(tab, index) in tabs" :key="index" @click="selectTab(index)" :class="{'tab-selected': index === selectedIndex}" class="tab" > {{ tab.props.title }} </div> </div> <slot></slot> </div> </template> <script lang="ts"> import {defineComponent, reactive, provide, onMounted, onBeforeMount, toRefs, VNode} from "vue"; interface TabProps { title: string; } export default defineComponent({ name: "Tabs", setup(_, {slots}) { const state = reactive({ selectedIndex: 0, tabs: [] as VNode<TabProps>[], count: 0 }); provide("TabsProvider", state); const selectTab = (i: number) => { state.selectedIndex = i; }; onBeforeMount(() => { if (slots.default) { state.tabs = slots.default().filter((child) => child.type.name === "Tab"); } }); onMounted(() => { selectTab(0); }); return {...toRefs(state), selectTab}; } }); </script> 选项卡组件: <script lang="ts"> export default defineComponent({ name: "Tab", setup() { const index = ref(0); const isActive = ref(false); const tabs = inject("TabsProvider"); watch( () => tabs.selectedIndex, () => { isActive.value = index.value === tabs.selectedIndex; } ); onBeforeMount(() => { index.value = tabs.count; tabs.count++; isActive.value = index.value === tabs.selectedIndex; }); return {index, isActive}; } }); </script> <template> <div class="tab" v-show="isActive"> <slot></slot> </div> </template> 哦伙计们,我解决了: this.$slots.default().filter(child => child.type.name === 'Tab') 对于想要完整代码的人: 标签.vue <template> <div> <div class="tabs"> <ul> <li v-for="tab in tabs" :class="{ 'is-active': tab.isActive }"> <a :href="tab.href" @click="selectTab(tab)">{{ tab.name }}</a> </li> </ul> </div> <div class="tabs-details"> <slot></slot> </div> </div> </template> <script> export default { name: "Tabs", data() { return {tabs: [] }; }, created() { }, methods: { selectTab(selectedTab) { this.tabs.forEach(tab => { tab.isActive = (tab.name == selectedTab.name); }); } } } </script> <style scoped> </style> 标签.vue <template> <div v-show="isActive"><slot></slot></div> </template> <script> export default { name: "Tab", props: { name: { required: true }, selected: { default: false} }, data() { return { isActive: false }; }, computed: { href() { return '#' + this.name.toLowerCase().replace(/ /g, '-'); } }, mounted() { this.isActive = this.selected; }, created() { this.$parent.tabs.push(this); }, } </script> <style scoped> </style> 应用程序.js <template> <Tabs> <Tab :selected="true" :name="'a'"> aa </Tab> <Tab :name="'b'"> bb </Tab> <Tab :name="'c'"> cc </Tab> </Tabs> <template/> 我扫描子元素的解决方案(在对 vue 代码进行大量筛选之后)是这样的。 export function findChildren(parent, matcher) { const found = []; const root = parent.$.subTree; walk(root, child => { if (!matcher || matcher.test(child.$options.name)) { found.push(child); } }); return found; } function walk(vnode, cb) { if (!vnode) return; if (vnode.component) { const proxy = vnode.component.proxy; if (proxy) cb(vnode.component.proxy); walk(vnode.component.subTree, cb); } else if (vnode.shapeFlag & 16) { const vnodes = vnode.children; for (let i = 0; i < vnodes.length; i++) { walk(vnodes[i], cb); } } } 这将返回子组件。我对此的用途是我有一些通用的对话框处理代码,用于搜索子表单元素组件以咨询其有效性状态。 const found = findChildren(this, /^(OSelect|OInput|OInputitems)$/); const invalid = found.filter(input => !input.checkHtml5Validity()); 如果你复制粘贴与我相同的代码 然后只需向“选项卡”组件添加一个创建的方法,该方法将自身添加到其父级的选项卡数组中 created() { this.$parent.tabs.push(this); }, 使用脚本设置语法,您可以使用useSlots:https://vuejs.org/api/sfc-script-setup.html#useslots-useattrs <script setup> import { useSlots, ref, computed } from 'vue'; const props = defineProps({ perPage: { type: Number, required: true, }, }); const slots = useSlots(); const amountToShow = ref(props.perPage); const totalChildrenCount = computed(() => slots.default()[0].children.length); const childrenToShow = computed(() => slots.default()[0].children.slice(0, amountToShow.value)); </script> <template> <component :is="child" v-for="(child, index) in childrenToShow" :key="`show-more-${child.key}-${index}`" ></component> </template> 我对 Ingrid Oberbüchler 的组件做了一个小改进,因为它不支持热重载/动态选项卡。 在 Tab.vue 中: onBeforeMount(() => { // ... }) onBeforeUnmount(() => { tabs.count-- }) 在 Tabs.vue 中: const selectTab = // ... // ... watch( () => state.count, () => { if (slots.default) { state.tabs = slots.default().filter((child) => child.type.name === "Tab") } } ) 我也遇到了同样的问题,在做了很多研究并问自己为什么他们删除了$children之后,我发现他们创建了一个更好、更优雅的替代方案。 这是关于动态组件的。 (<component: is =" currentTabComponent "> </component>). 我在这里找到的信息: https://v3.vuejs.org/guide/component-basics.html#dynamic-components 希望这对你有用,向大家问好!! 我发现这个更新的 Vue3 教程使用 Vue 插槽构建可重用的选项卡组件对于与我相关的解释非常有帮助。 它使用 ref、provide 和ject 来替换我遇到同样问题的this.tabs = this.$children;。 我一直在遵循我最初发现的构建选项卡组件(Vue2)的教程的早期版本创建您自己的可重用 Vue 选项卡组件。 根据 Vue 文档,假设您在 Tabs 组件下有一个默认插槽,您可以直接在模板中访问该插槽的子级,如下所示: // Tabs component <template> <div v-if="$slots && $slots.default && $slots.default()[0]" class="tabs-container"> <button v-for="(tab, index) in getTabs($slots.default()[0].children)" :key="index" :class="{ active: modelValue === index }" @click="$emit('update:model-value', index)" > <span> {{ tab.props.title }} </span> </button> </div> <slot></slot> </template> <script setup> defineProps({ modelValue: Number }) defineEmits(['update:model-value']) const getTabs = tabs => { if (Array.isArray(tabs)) { return tabs.filter(tab => tab.type.name === 'Tab') } else { return [] } </script> <style> ... </style> 并且 Tab 组件可能类似于: // Tab component <template> <div v-show="active"> <slot></slot> </div> </template> <script> export default { name: 'Tab' } </script> <script setup> defineProps({ active: Boolean, title: String }) </script> 实现应类似于以下内容(考虑一组对象,每个部分一个,带有 title 和 component): ... <tabs v-model="active"> <tab v-for="(section, index) in sections" :key="index" :title="section.title" :active="index === active" > <component :is="section.component" ></component> </app-tab> </app-tabs> ... <script setup> import { ref } from 'vue' const active = ref(0) </script> 另一种方法是使用 useSlots,如 Vue 文档(上面的链接)中所述。 在 3.x 中,$children 属性已被删除并且不再受支持。相反,如果您需要访问子组件实例,他们建议使用 $refs。作为数组 https://v3-migration.vuejs.org/writing-changes/children.html#_2-x-syntax 在 3.x 版本中,$children 已被删除且不再受支持。使用 ref 访问子实例。 <script setup> import { ref, onMounted } from 'vue' import ChildComponent from './ChildComponent .vue' const child = ref(null) onMounted(() => { console.log(child.value) // log an instance of <Child /> }) </script> <template> <ChildComponent ref="child" /> </template> 详细信息:https://vuejs.org/guide/essentials/template-refs.html#template-refs 基于@Urkle的回答: /** * walks a node down * @param vnode * @param cb */ export function walk(vnode, cb) { if (!vnode) return; if (vnode.component) { const proxy = vnode.component.proxy; if (proxy) cb(vnode.component.proxy); walk(vnode.component.subTree, cb); } else if (vnode.shapeFlag & 16) { const vnodes = vnode.children; for (let i = 0; i < vnodes.length; i++) { walk(vnodes[i], cb); } } } 除了已接受的答案之外: 而不是 this.$root.$children.forEach(component => {}) 写 walk(this.$root, component => {}) 这就是我让它为我工作的方式。


PlateJS 序列化 HTML

我正在尝试这样做,以便当我单击按钮时,我可以获得一个 html 字符串。 一般来说,这个富文本编辑器会在React-Hook-Form内部,当提交表单时,它会保存


输入每个字母自己的单独图像HTML

我正在制作一个 HTML 网站,该网站在 id userInput 中接受输入,并且想知道如何将其拆开并插入 userInput 长度的图像 例如,假设 userInput = Hello World 我...




© www.soinside.com 2019 - 2024. All rights reserved.