js 判断图片和视频是否加载成功

图片与视频加载处理技巧

图片:

失败:

// 方法 1:更换图片地址

$('img').error(function(){

    $(this).attr('src', '加载失败.png');

});

// 方法 2:隐藏它

$("img").error(function(){

    $(this).hide();

});

 

成功

//jquery的方式

$("#imageId").load(function(){

  alert("加载完成!");

});

js:

document.getElementById("img2").onload=function(){}

 

 

视频:

h5的video标签 的oncanplaythrough方法可以判断视频加载成功与否

<a href="javascript:void(0)" title="点击查看视频">

<video id="${video.id}" src="${videoPath}${video.fFileName}" onclick="big(this.src);"

height=30 width=30 oncanplaythrough="myFunction(this.id)"/>

</a>

 

function myFunction(id) {

$("#"+id+"a").show();

}

 

img标签有个onerror方法可以直接判断图片是否加载成功:

为防止onerror方法死循环应该这么写:

<img alt="" xid="image1" src="xxxx" onerror="this.onerror=null;this.src='./knowledge/DefaultNews.png'"></img></div>

<think>好的,用户想了解如何在QWebEngineView中判断页面是否加载成功。我需要先回忆一下Qt中QWebEngineView的相关知识。首先,QWebEngineView是Qt WebEngine模块的一部分,用于显示网页内容。用户的问题是关于加载状态的判断,这通常涉及到信号槽的机制。 接下来,我应该考虑QWebEngineView或QWebEnginePage提供的信号。记得QWebEnginePage有loadStarted、loadFinished这两个信号,分别对应加载开始结束。loadFinished信号会传递一个布尔值参数表示是否加载成功。 然后,用户可能需要知道如何连接这些信号到自定义的槽函数。比如在加载完成时检查参数,如果为true则成功,否则失败。同时,可能需要处理加载过程中的错误,比如网络错误,这时候可能需要用到QWebEngineView的error事件或者相关的信号。 不过,Qt的QWebEngineView在错误处理方面可能没有直接提供信号,可能需要通过QWebEnginePage的loadFinished来处理。另外,有时候页面虽然加载完成,但可能有部分资源加载失败,这时候可能需要更详细的检查,比如通过JavaScript来检测是否有错误,但这样比较复杂。 还需要注意,QWebEngineView的异步特性,加载完成信号可能不会立即触发,需要正确的上下文管理。另外,如果用户想区分加载成功失败的情况,应该在槽函数中根据布尔值参数进行分支处理。 最后,应该给出一个示例代码片段,展示如何连接信号槽,并在加载成功或失败时执行相应的操作。同时提醒用户可能的注意事项,比如网络延迟、超时处理等,这些可能需要额外的方法来实现。</think>在 Qt 的 `QWebEngineView` 中判断页面是否加载成功,可以通过以下步骤实现: --- ### 一、核心方法 `QWebEngineView` 继承自 `QWebEnginePage`,主要通过以下两个信号实现加载状态监控: 1. **`loadStarted()`** 当开始加载新页面时触发 2. **`loadFinished(bool success)`** 当页面加载完成时触发,参数 `success` 表示是否成功 --- ### 二、代码实现示例 ```cpp // 创建 QWebEngineView 对象 QWebEngineView *webView = new QWebEngineView(this); // 连接加载完成信号 connect(webView, &QWebEngineView::loadFinished, [](bool success) { if(success) { qDebug() << "页面加载成功"; // 执行成功后的操作(如启用按钮、显示内容等) } else { qDebug() << "页面加载失败"; // 执行失败处理(如显示错误页、重试逻辑等) } }); // 加载网页 webView->load(QUrl("https://www.example.com")); ``` --- ### 三、高级错误处理 若要获取具体错误信息,需使用 `QWebEnginePage::certificateError` 或重载 `certificateError` 方法: ```cpp // 继承 QWebEnginePage 自定义错误处理 class CustomWebPage : public QWebEnginePage { Q_OBJECT public: bool certificateError(const QWebEngineCertificateError &error) override { qDebug() << "SSL 证书错误:" << error.errorDescription(); return false; // 返回 true 表示强制忽略错误 } }; // 使用自定义 Page CustomWebPage *page = new CustomWebPage; webView->setPage(page); ``` --- ### 四、注意事项 1. **异步特性** 加载完成信号可能不会立即触发(需等待网络响应) 2. **部分加载问题** 即使 `success=true`,仍可能存在资源(如图片加载失败 3. **超时处理** 可通过 `QTimer` 实现超时检测(Qt 未提供原生超时信号) --- ### 五、典型应用场景 - 显示加载进度条 - 网页加载失败时展示备用内容 - 实现自动重试机制 - 记录页面加载性能数据 建议结合 `QWebEngineSettings` 进行更细粒度的网络控制,如需完整错误日志可启用 `QWebEngineSettings::JavascriptEnabled` 并通过 JavaScript 控制台捕获错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值