QWebEngineView:html 文件中的 href 不起作用
我有一个 test.html 文件,例如: 我有一个 test.html 文件,例如: <!DOCTYPE html> <html> <head> </head> <body> <a style="padding-right:5px" target="_blank" href="data/">Datadir</a> </body> </html> 包含 test.html 的目录如下: test.html data\ a.txt b.txt 我使用“file:///remote/us01home19/ktc/public_html/testLocalHref/test.html”并在firefox和chrome中单击Datadir,结果如下: 和: 我写了一个pyside2代码来做同样的事情,代码如下: from PySide2 import QtCore, QtWidgets, QtWebEngineWidgets import os import sys class CustomWebEnginePage(QtWebEngineWidgets.QWebEnginePage): # Store second window. external_window = None def acceptNavigationRequest(self, url, _type, isMainFrame): print(url, _type, isMainFrame) if _type == QtWebEngineWidgets.QWebEnginePage.NavigationTypeLinkClicked: if not self.external_window: self.external_window = QtWebEngineWidgets.QWebEngineView() self.external_window.setUrl(url) self.external_window.show() return False return super().acceptNavigationRequest(url, _type, isMainFrame) class MainWindow(QtWidgets.QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.browser = QtWebEngineWidgets.QWebEngineView() self.browser.setPage(CustomWebEnginePage(self)) # self.browser.setUrl(QtCore.QUrl("https://code.visualstudio.com")) self.browser.setUrl(QtCore.QUrl("file:///remote/us01home19/ktc/public_html/testLocalHref/test.html")) # self.browser.setUrl(QtCore.QUrl("file:///remote/tw_rnd1/ktc/prog/python/pyside2/WebEngine/data/aaa.ava.summary.html")) #self.browser.setUrl(QtCore.QUrl("file:///remote/tw_rnd1/ktc/prog/python/pyside2/WebEngine/data/aaa_ava_corners/C_1")) self.setCentralWidget(self.browser) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) 但是执行代码,我得到的结果如下: 但是点击Datadir,没有任何反应,甚至QWebEnginePage.acceptNavigationRequest也没有触发。有没有办法让 QWebEngine 的行为像 Firefox 和 Chrome 一样? 我尝试在 QWebEnginePage.acceptNavigationRequest 函数中添加打印消息来捕获点击 dataDir 信息,但似乎没有任何响应。 python版本:python-3.9.0, 操作系统版本:“CentOS Linux 7”, Qt 版本:“Qt_5.15” python 和 Qt 是自定义构建 我发现问题来自htmltarget =“_blank”在QWebEnginePage中不起作用,它可以通过在QtWebEngineWidgets中实现类函数createWindow来避免,例如: class CustomWebEnginePage(QtWebEngineWidgets.QWebEnginePage): # Store second window. external_window = None def acceptNavigationRequest(self, url, _type, isMainFrame): print(url, _type, isMainFrame) if _type == QtWebEngineWidgets.QWebEnginePage.NavigationTypeLinkClicked: if not self.external_window: self.external_window = QtWebEngineWidgets.QWebEngineView() self.external_window.setUrl(url) self.external_window.show() return False return super().acceptNavigationRequest(url, _type, isMainFrame) def createWindow(self, t): return self;enter code here
我想在div滚动到视口时启动一个函数。我的问题是,每次我继续滚动时,该功能都会再次触发/启动。 HTML: <... 我想在 div 滚动到视口中时启动一个函数。我的问题是,每次我继续滚动时,该功能都会再次触发/启动。 HTML: <div class="box"></div> JS: $(document).ready(function() { function start() { alert("hello"); } $(window).scroll(function() { if ( $(window).scrollTop() >= $('.box').offset().top - ($(window).height() / 2)) { $(".box").addClass("green"); start(); } else { $(".box").removeClass("green"); } }); }); 总结一下:当div滚动到视口中时,应该启动“start”函数。但触发一次后就不能再触发了。 小提琴 您可以设置一个标志,例如: var started = false; function start() { if(!started) { alert("hello"); } started = true; } 演示 $(document).ready(function() { var started = 0; function start() { if(started==0) { alert("Alert only once"); } started = 1; } $(window).scroll(function() { if ( $(window).scrollTop() >= $('.box').offset().top - ($(window).height() / 2)) { $(".box").addClass("green"); start(); } else { $(".box").removeClass("green"); } }); }); *{margin:0;} .box { background: red; height: 200px; width: 100%; margin: 800px 0 800px 0; } .green { background: green; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <br /> <center> <br /> <h1>scroll down</h1> </center> <div class="box"></div> 有很多方法可以解决这个问题。您可以删除事件侦听器(因为您使用的是 jQuery,所以我将使用 on 和 off 方法): $(window).on('scroll', function() { if ( $(window).scrollTop() >= $('.box').offset().top - ($(window).height() / 2)) { $(".box").addClass("green"); start(); } else { $(".box").removeClass("green"); } $(window).off('scroll'); }); 如果你希望窗口滚动方法在启动方法满足要求后停止..你可以这样做 $(document).ready(function() { var toggleScroll = false; function start() { alert("hello"); } $(window).one("scroll", checkToggleScroll); function checkToggleScroll(){ if ( $(window).scrollTop() >= $('.box').offset().top - ($(window).height() / 2)) { $(".box").addClass("green"); toggleScroll = true; start(); } else { $(".box").removeClass("green"); } if(!toggleScroll){ $(window).one("scroll", checkToggleScroll); } } }); 当start()没有类$(".box)(在一定量的滚动后添加)时,只需运行"green"函数。 $(document).ready(function() { function start() { alert("hello"); } $(window).scroll(function() { if ($(window).scrollTop() >= $('.box').offset().top - ($(window).height() / 2)) { if (!$(".box").hasClass("green")) { $(".box").addClass("green"); start(); } } else { $(".box").removeClass("green"); } }); }); .box { background: red; height: 200px; width: 100%; margin: 800px 0 800px 0; } .green { background: green; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="box"></div>
如何在 WindowStyle=None 的情况下删除 WPF 窗口顶部的白色条带?
是否可以在 Window Style=None 的情况下删除 WPF 窗口顶部的白色条带。 XAML 和 Window 如屏幕截图所示:
最近升级到 Chrome 58 引起了问题。当 Selenium 启动 Chrome 实例时,它不会像 Chrome 57 那样导航到初始 URL。现在,当通过
我无法在 Puppeteer 中使用特定配置文件。它始终以新用户身份打开 chrome。 例如:我的 chrome 有 3 个配置文件。以下是我用来打开 chrome 的代码
是否可以在 PySimpleGUI 窗口启动时选择非第一个选项卡?
window = sg.Window("foobar", 布局, 边距=(2, 2), Finalize=True) window.Element('-ENCR_TAB-').Select() 我看到的是第一个选项卡被选中,过了一会儿“-
我有一个 UserControl,用作窗口对话框的“模板”。 它包含一个关闭按钮和一个取消按钮。 我有一个 UserControl,用作窗口对话框的“模板”。 它包含一个关闭按钮和一个取消按钮。 <UserControl x:Class="TombLib.WPF.Controls.WindowControlButtons" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:TombLib.WPF.Controls" mc:Ignorable="d" xmlns:darkUI="clr-namespace:DarkUI.WPF;assembly=DarkUI.WPF" xmlns:vm="clr-namespace:TombLib.WPF.ViewModels" xmlns:sg="clr-namespace:SpacedGridControl;assembly=SpacedGridControl" d:DesignHeight="100" d:DesignWidth="300" x:Name="root"> <StackPanel VerticalAlignment="Center" HorizontalAlignment="Right" Height="Auto" Orientation="Horizontal"> <Button Name="oKButton" Margin="{x:Static darkUI:Defaults.MediumThickness}" Width="100" Height="Auto" Command="{Binding Close}" CommandParameter="{Binding Window}" Content="OK"></Button> <Button Name="cancelButton" Margin="{x:Static darkUI:Defaults.MediumThickness}" Width="100" Height="Auto" Command="{Binding Path=Cancel}" CommandParameter="{Binding Window}" Content="Cancel"></Button> </StackPanel> </UserControl> public partial class WindowControlButtons : UserControl { public static readonly DependencyProperty CancelProperty = DependencyProperty.Register( nameof(Cancel), typeof(ICommand), typeof(WindowControlButtons), new PropertyMetadata(null)); public ICommand Cancel { get { return (ICommand)GetValue(CancelProperty); } set { SetValue(CancelProperty, value); } } public static readonly DependencyProperty CloseProperty = DependencyProperty.Register( nameof(Close), typeof(ICommand), typeof(WindowControlButtons), new PropertyMetadata(null)); public ICommand Close { get { return (ICommand)GetValue(CloseProperty); } set { SetValue(CloseProperty, value); } } public static readonly DependencyProperty WindowParameter = DependencyProperty.Register( nameof(Window), typeof(object), typeof(WindowControlButtons), new PropertyMetadata(null)); public object? Window { get { return GetValue(WindowParameter); } set { SetValue(WindowParameter, value); } } public WindowControlButtons() { InitializeComponent(); } } 我想在以下窗口中使用它: <Window x:Class="TombLib.WPF.Windows.SelectIdWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:TombLib.WPF.Windows" mc:Ignorable="d" xmlns:ctrl="clr-namespace:TombLib.WPF.Controls" xmlns:vm="clr-namespace:TombLib.WPF.ViewModels" xmlns:sg="clr-namespace:SpacedGridControl;assembly=SpacedGridControl" xmlns:darkUI="clr-namespace:DarkUI.WPF;assembly=DarkUI.WPF" Title="SelectIdWindow" Height="100" Width="300" d:DataContext="{d:DesignInstance Type=vm:SelectIdViewModel }" x:Name="Self"> <sg:SpacedGrid Margin="{x:Static darkUI:Defaults.MediumThickness}"> <!-- REDACTED --> <ctrl:WindowControlButtons DataContext="{Binding ElementName=Self}" Window="{Binding ElementName=Self, Mode=OneWay}" Close="{Binding CloseCommand,Mode=OneWay}" Cancel="{Binding CancelCommand,Mode=OneWay}" Height="Auto" Width="Auto" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Right"/> </sg:SpacedGrid> </Window> public partial class SelectIdWindow : Window { public ICommand? CloseCommand { get; set; } public ICommand? CancelCommand { get; set; } public SelectIdWindow() { CloseCommand = new WindowCloseCommand(); InitializeComponent(); } } public class SelectIdViewModel { public string RequestedId { get; set; } = string.Empty; public IEnumerable<string> TakenIds { get; set;} public SelectIdViewModel(IEnumerable<string> takenIDs) { TakenIds = takenIDs; } } 但是,当我打开窗口时如下: SelectIdWindow w = new SelectIdWindow(); var takenIDs = Entities.Select(kv => kv.Key.Name); w.DataContext = new SelectIdViewModel(takenIDs); w.ShowDialog(); 我在绑定 WindowControlButtons 时收到以下错误: DataContext 显式设置为 Self,它应该代表 Window,而不是 ViewModel。我在这里做错了什么? 绑定错误表明问题出在 Button.ICommand 属性上: 要修复此问题,请在 WindowControlButtons 绑定中添加 ElementName=root,以便绑定到声明的依赖项属性而不是 DataContext: <UserControl x:Class="TombLib.WPF.Controls.WindowControlButtons" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:TombLib.WPF.Controls" mc:Ignorable="d" xmlns:darkUI="clr-namespace:DarkUI.WPF;assembly=DarkUI.WPF" xmlns:vm="clr-namespace:TombLib.WPF.ViewModels" xmlns:sg="clr-namespace:SpacedGridControl;assembly=SpacedGridControl" d:DesignHeight="100" d:DesignWidth="300" x:Name="root"> <StackPanel VerticalAlignment="Center" HorizontalAlignment="Right" Height="Auto" Orientation="Horizontal"> <Button Name="oKButton" ... Command="{Binding Close, ElementName=root}" CommandParameter="{Binding Window, ElementName=root}" Content="OK"/> <Button Name="cancelButton" ... Command="{Binding Path=Cancel, ElementName=root}" CommandParameter="{Binding Window, ElementName=root}" Content="Cancel"/> </StackPanel> </UserControl>
我正在尝试在清单版本 3 中创建 Chrome 扩展, 我想从 Chrome 扩展中的 Dom 中抓取数据。当我加载 chrome 扩展 Dom 时未加载,因此无法爬行,af...
Chrome 浏览器在运行 selenium chrome webdriver 后关闭
我目前正在学习 Selenium 4.0,并设置了一个基本脚本,可以单击 Python 网站上的按钮。我正在使用 Chrome 网络驱动程序。但每当我运行代码时,都会打开一个 chrome 窗口,显示
我在 angular.json 和 tsconfig.json 中给出了 sourceMap= true 。我在 chrome 工具中仍然看不到源图
如何在Ractive.js中绑定变量window['array[element]']?
需要对具有“array[element]”这样非典型名称的变量进行双向绑定。 下面的语法有效,但是当我将 0 更改为 @index 时,它就会被破坏。添加反斜杠是...
//评论 //Ctrl+K,Ctrl+C(在 Visual Studio 中注释代码) //Ctrl+K,Ctrl+U(在 Visual Studio 中取消注释代码) //Ctrl+? (在Chrome开发者工具中评论) //Ctrl+? (在 Chrome 中取消注释
我在使用 Google Chrome 时遇到了非常奇怪的行为。 在 Google Chrome 地址栏中(您可以在其中输入搜索词或 URL),它会记住搜索和页面的历史记录。嗬...
单击重新加载(在 chrome://extensions 中)与 chrome 扩展自动更新时相同吗? 我想避免 chrome 网上应用店更新过程等待 60 分钟。
Chrome 调试器 - 如何关闭 console.log 消息分组?
比如说,在我的 Google Chrome 扩展中我这样做: 控制台.log(消息); Chrome 调试器将类似的消息分组如下: 有没有什么可以关闭它并让消息按原样发布?
我在自己的桌面上使用 XAMPP 包,操作系统为 Window 7。 这意味着我正在使用 MySQL DB 和 Apache 服务器。 现在我想将我的整个 MySQL 数据库复制/迁移到我朋友的桌面,这是......
通过 javascript 打开我的扩展 html 文件时,Chrome 会阻止它[已修复,我只是愚蠢]
我目前正在编写一个 chrome 扩展。我有一个按钮应该打开我的扩展根目录中的settings.html 文件。但它被 chrome 阻止,说“向服务器发出请求......
我在selenium 4.16.0,chrome-120.0.6099.217中使用了上面的代码 从 selenium.webdriver.edge.service 导入服务 service_obj = 服务() 驱动程序 = webdriver.Chrome(service=service_obj) 司机....
最近,我需要解析 Chrome Web 浏览器在开发工具中记录事件时生成的 JSON,并从中获取一些计时数据。 Chrome 可以产生相当大量的数据...
Chrome 驱动程序 113 不支持现有 Chrome 浏览器版本 120.0.6099.130
当我在启动浏览器时运行 jmeter - selenium Web 驱动程序脚本时出现以下错误 Org.openqa.selenium.SessionNotCreatedException:无法启动新会话。响应代码 500。混乱...
我无法使用 Chrome 扩展程序中的 chrome.downloads API 停止小文件下载
我试图在 Chrome 扩展清单版本 3 中结束(并在分析后重新启动)文件下载之前停止。我正在使用 chrome.downloads.OnDeterminingFileName 和 chrome.downlo...
我正在运行最新版本的Chrome:版本120.0.6099.217(官方版本)(64位) 如何摆脱这个烦人的恢复页面弹出窗口?我找到了大量的解决方案,但没有一个有效......
在 Google Chrome 中清除单个网站的网站数据,现在可以重定向
因此,我们将网站从 example.com 切换到 www.example.com (并实现了到 www.example.com 的转发)。我相信我仍然有 Google Chrome 站点数据,这会导致问题(Shopware 6 试图
JavaScript StructuredClone 在 Chrome/Edge 中遇到“非法调用”,但在 NodeJS 中没有遇到问题
在浏览器中运行以下代码: ({ 克隆: StructuredClone }).clone(1); 会得到 Uncaught TypeError: Illegal incalling,在 Chrome/Edge 中测试。 不过在 NodeJS 中运行代码没问题,测试一下...
对于我的 Chrome 扩展程序,我想为用户提供下载 PDF 的选项,以显示并格式化他们的数据。这个想法是用户按下扩展弹出窗口上的按钮,扩展
Android 14 照片选择器相机磁贴已从 Google Chrome 中删除
尝试在Android 14上使用chrome在网站上上传照片。不再有使用相机拍照和上传的选项。唯一的选择是从相册中选择照片。仅此问题...
我们刚刚购买了 Primeface 主题和布局哨兵。然而我注意到 Chrome 中的表格有一个奇怪的样式。表页眉和页脚有橙色边框。我的同事看不到这个...
如何在不使用 iframe 的情况下使用 Angular 为 chromeextension 创建侧边栏
我正在使用 Angular 开发 chrome 扩展,我的扩展与 MaxAI chrome 扩展类似,当用户单击小部件时,它会打开侧边栏。 我尝试了一些教程来创建...
我使用 Chrome 通过点击浏览器中的链接来触发意图: 塔...
错误:找不到 Chrome(版本 119.0.6045.105)。如果出现以下任一情况,就会发生这种情况
我正在使用这个 Laravel 包:https://github.com/spatie/browsershot 来截屏。它基于 Puppeteer 但是当我运行时它返回这个错误 错误输出: 错误:找不到 Chrome (...
我想使用 Excel VBA 通过 Chrome 打开一个 URL 来填写数据并点击提交按钮。 我编写了打开 URL 的命令。 如何输入数据并提交表格? 我的代码: 子
在不打开扩展弹出窗口的情况下显示来自 Socket.io 服务器的 Chrome 扩展通知
我有一个使用 React.js 构建的 Chrome 扩展,它与 Socket.io 服务器通信以接收通知。我想向用户显示这些通知,即使扩展程序弹出...
TypeError:WebDriver.__init__() 获得意外的关键字参数“chrome_options”
从 selenium 导入 webdriver 从 selenium.webdriver.chrome.options 导入选项 选项 = 选项() options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe&...
为什么这不起作用? chrome 给我一个错误, 未捕获的语法错误:意外的 tok...
在 Chrome 中为位于 %UserProfile%\Desktop\ 的本地 HTML 文件添加书签
我有一个很小的 HTML 文件,其中包含一个图标和一个重定向,以区分不同计算机上没有自定义图标的多个 URL,我想在 Chrome 上将其添加为书签。罪恶...
是否可以在不安装Chrome应用程序的情况下使用Selenium?
如标题所示,是否可以在不下载整个 Google Chrome 应用程序的情况下使用 Selenium?我想知道这一点,因为你可以在 replit 上运行 Selenium 而不会出现任何问题,但是......
自flutter 1.9:如何在浏览器中运行flutter应用程序? Flutter run -d chrome 不起作用
从 flutter 1.9 开始,flutter_web 被合并到 flutter 中。我尝试在 Chrome 浏览器中运行初始 flutter 应用程序,但失败了。操作系统是ubuntu 19.04 我成功使用的命令: 颤振升级...
如何在 Chrome 的文本区域编辑器中使用 Tab 来识别多行?
我正在寻找一种解决方案,使我能够使用 tab/shift-tab 来更改文本区域中选定多行的缩进,就像这里的 markdown 编辑器一样。 到目前为止我正在寻找 Chrome
网站在 mozilla 中可以正常打开,但在 chrome 中则不行
所以我面临的问题是该网站在 firefox 中工作正常,甚至在 Chrome 中加载 http 时也工作正常,但是当您切换到 https 时,它会停止工作,并且在网络选项卡中仅返回...
chrome 开发工具 我无法获取 xmp 标签或类“note”出现错误 我尝试过这些 # status = driver.find_element(By.CSS_SELECTOR, value=".msgdiv") 状态=司机。
为什么 Chrome 开发工具(网络选项卡)不显示请求的响应? (无法加载响应数据:未找到具有给定标识符的资源))
我无法推断为什么 Chrome(97.x.x.x) 无法加载成功 POST XHR 的响应。它在响应部分显示以下消息: 无法加载响应数据:否
使用 chrome 版本 120 获取 org.openqa.selenium.SessionNotCreatedException
我收到以下异常: org.openqa.selenium.SessionNotCreatedException:无法启动新会话。响应代码 500。消息:会话未创建:此版本的 ChromeDriver 仅适用...
如何在 Firefox 上允许 CORS? 我在 Chrome 和 Internet Explorer 上轻松管理了它,但在 Firefox 上却完全失败了。我编辑了以下 about:config 条目 安全.fileuri.
如何在 Linux ARM64 上构建 Chrome V8?
我正在尝试在 Ubuntu 22.04 ARM64 上构建 V8。我尝试通过便利脚本进行构建,即tools/dev/gm.py arm64.release,以及tools/dev/v8gen.py arm64.release,但没有成功(clang
Iframe 外部 API 回调将 ASP.NET MVC 会话对象重置为 null
解释起来有点棘手,但我会尽力解释问题。首先,它仅在 Firefox、Chrome 和 Edge 上按预期运行。 我有一个网络退房表格...
l/bin/ld:找不到-lcurl-impersonate-chrome:没有这样的文件或目录
当我尝试在docker中的python3.10中安装curl-cffi>=0.5.9时,显示如下错误: #12 50.74 gcc-共享 #12 50.74 构建/temp.linux-x86_64-cpython-310/build/temp.linux-x86_64-cpython-310/
我正在尝试制作一个应用程序,用于在 IndexedDB 中存储和检索视频文件。但是,我在 Firefox 中检索和在 Chrome 中存储时遇到问题。我会发布鳕鱼...
如何在 Selenium IDE (Chrome) 中自动递增数字
我一直在尝试创建一个循环脚本,每次循环都会将数字加 1。 这些是命令: 商店 | 1 |我| 时代 | 5 | 执行脚本 |返回 ${i} + 1; |我| 回声| ${...
根据 Google 文档,Google Chrome Lighthouse 工具计算总阻塞时间 (TBT) 的主要标准是一项长期任务。 根据我的理解,长任务是任何 JavaScript