惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
D
Docker
J
Java Code Geeks
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
腾讯CDC
罗磊的独立博客
U
Unit 42
爱范儿
爱范儿
Vercel News
Vercel News
MyScale Blog
MyScale Blog

博客园 - Insus.NET

HTTP Error 404.0 - Not Found Vue3实现拖放式上传 拖放式上传 实现MultipartStreamProvider经Web API上传文档或图片 文件上传和表单字段混合提交 在HttpContext.Current返回null时如何操作 angularjs根据类型动态加载组件 angularjs获取数据服务 扫一扫直连WiFi二维码 User Profile Service 服务未能登录 Visual Studio2026创建Vue项目 安装与配置node.js HTTP Error 403.14 - Forbidden VisualStudio2026回滚上一版本 消息认证码(加强) 网站无法使用插值字符串语法 HMAC(Hash-based Message Authentication Code)认证示例 浏览器自动发送域凭据 企业内小网站兼用Windows验证登录 访问用户控件的函数 onblur事件改为监听处理 将警报消息改为吐司消息 内容有无变化OnBlur即时更新引起的问题与解决 混合式提高用户编辑与操作效率 光标离开文框后即刻更新 WebForm实现Web API JavaScript对GridView删除行后并重新给其数据绑定 把CS值传给JS使用 v2 确认信息confirm由C#后端移至javascript前端 无法发布网站Web Site
Vue的v-show实践
Insus.NET · 2026-09-15 · via 博客园 - Insus.NET


当文件不存在,不想错误的信息呈现在iframe内嵌框架中,而是显示自定义通俗信息。

html markup,将修改如下:

<div class="right"  style="margin-left: 3px; width: 888px;">
  <iframe v-show="hasFile"  id="frameContainer" loading="lazy" style="width: 100%; height: 500px; border: 0px none #00000000"></iframe>
  <div  v-show="!hasFile" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#999;">
    文档不存在或被删除
  </div>
</div>


从上面的代码中,有个代码关键词v-show。
2026-09-15_17-24-23


以下为可复制代码:

 const app = createApp({
     setup() {
         const loading = ref(false);
         const error = ref(null);
         const hasFile = ref(true);

         const onView = async (item) => {
             const iframe = document.getElementById('frameContainer');
             if (!iframe) return;

             loading.value = true;
             error.value = '';

             let img1 = '/temp/' + item.ImageFileName;
             const urls = [img1]; //传入一个或多个文件路径。
             const results = await Promise.all(urls.map(checkFileExists))
             hasFile.value = results[0];


             if (hasFile.value) {
                 iframe.src = img1;
             }
         }

         const checkFileExists = async (url) => {
             try {
                 const res = await fetch(url, {
                     method: 'HEAD',
                     cache: 'no-store',
                 })
                 return res.ok
             } catch (err) {
                 return false
             }
         };

         return {
             loading,
             error,
             hasFile,
             onView
         };
     }
 });

 app.mount('#app');

View Code