首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何防止target="_blank“链接在您从chrome访问时被PWA应用程序打开?

要防止带有 target="_blank" 属性的链接在 Chrome 浏览器中通过 Progressive Web App (PWA) 打开,可以通过以下几种方法来实现:

基础概念

  • PWA:渐进式网络应用,是一种使用现代网络技术为用户提供类似原生应用体验的网络应用。
  • target="_blank":HTML 中的一个属性,用于在新窗口或新标签页中打开链接。

相关优势

  • 用户体验:控制链接的打开方式可以提升用户体验,确保用户期望的行为得到满足。
  • 安全性:防止在新标签页中打开链接可以减少潜在的安全风险。

类型与应用场景

  • 类型:主要涉及前端开发中的 HTML 和 JavaScript 技术。
  • 应用场景:适用于需要严格控制页面跳转行为的网站或应用,特别是在 PWA 环境中。

解决方法

以下是几种常见的解决方法:

方法一:使用 JavaScript 阻止默认行为

可以通过 JavaScript 监听点击事件并阻止默认行为来实现。

代码语言:txt
复制
<a href="https://example.com" id="myLink">Click me</a>

<script>
document.getElementById('myLink').addEventListener('click', function(event) {
    event.preventDefault(); // 阻止默认行为
    window.location.href = this.href; // 在当前窗口中打开链接
});
</script>

方法二:使用 rel="noopener"

虽然 rel="noopener" 主要用于安全考虑,防止新打开的页面控制原页面,但它也可以间接影响链接的打开方式。

代码语言:txt
复制
<a href="https://example.com" target="_blank" rel="noopener">Click me</a>

方法三:CSS 解决方案

通过 CSS 的 pointer-events 属性来禁用链接的点击事件。

代码语言:txt
复制
<a href="https://example.com" class="no-pwa-open">Click me</a>

<style>
.no-pwa-open {
    pointer-events: none;
}
</style>

原因分析

  • PWA 的行为:PWA 在安装后会以应用的形式运行,可能会覆盖默认的链接打开行为。
  • Chrome 的处理:Chrome 浏览器在处理 PWA 中的链接时,可能会优先考虑在新标签页中打开,而不是在当前窗口。

解决问题的步骤

  1. 识别问题:确定链接在 PWA 中被错误地在新标签页打开。
  2. 选择方法:根据具体需求选择上述方法之一。
  3. 实施解决方案:编写相应的 HTML 和 JavaScript 代码或应用 CSS 样式。
  4. 测试验证:在不同设备和浏览器中测试链接的行为,确保解决方案有效。

通过上述方法,可以有效控制 target="_blank" 链接在 Chrome 中通过 PWA 打开的行为,提升用户体验和应用的安全性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用浏览器工具调试PWA

如何使用浏览器开发工具调试 PWA(Progressive Web Apps) ? 本教程说明了Chrome和Firefox的开发工具展示了什么样的工具,用于帮助用户调试PWA。...Chrome开发者工具概览 我们从Chrome开始。打开开发者工具,你会看到很多面板。...详细的应用程序面板 应用程序面板包含了很多PWA的元素。 清单(Manifest) 清单让用户可以选择把应用『添加到主屏幕』。清单提供了很多应用被安装到到设备该如何表现的细节说明。...展示:定了应用程序如何呈现。...当您希望从网络直接访问时,这会阻止应用程序使用缓存的资源。调试时也非常有用。 显示所有是一个选项,可以快速访问所有安装在设备上Service Worker。

3.7K40

关于如何做一个“优秀网站”的清单——规范篇

可索引性和社交性 站点内容可以被搜索引擎(如谷歌、百度)检索到 确认方法:利用“Google抓取方式”工具,您可以测试 Google 会如何抓取或呈现您网站上的某个网址。...内容可以从独立或全屏模式轻松共享 确认方法:确保从独立模式(将应用程序添加到主屏幕后),您可以从应用程序的UI中分享内容(如果适用的话)。...加载时不使用应用程序安装插页式广告 改善方法: ●应该只有一个顶部或底部的应用安装横幅●将PWA添加到用户的主屏幕后,应删除任何顶部/底部横幅。...站点适当地通知用户何时离线 确认方法: 向用户提供有关如何使用通知的上下文: ■访问该网站并找到推送通知选择加入流程 ■当浏览器显示权限请求时,请确保已提供上下文以说明该站点需要的权限...鼓励用户打开推送通知的UI不能过于激进。 确认方法: 访问该网站,并找到推送通知选择流。确保如果您关闭推送通知,则网站在同一会话中不会以相同的方式重新提示。

3.2K70
  • 开发一个渐进式Web应用程序(PWA)前都需要了解什么?

    最重要的是,渐进式Web应用程序在手机上创建方式也很简单,因为它们只是对你网站的增强,当有人在第一次访问你的网站时,PWA的功能在经过你授权后就会自动为你创建在手机上。...下面, 我们会一起来看看如何来创建一个属于自己的PWA应用。...应用的网址 有许多方法可以访问我的本地主机:为了从远程访问发布在你机器上的8080端口的地址。为此,您可以使用ngrok。...该命令为您生成一个可供外部访问的URL。 ngrok http 8080 然后在Chrome中的移动设备上浏览至生成的网址。 PWA需要的技术组件是什么?...虽然注册一个SW很简单,但在有些情况下我们依然会遇到无法注册Service Worker的问题,我们来简单看看无法注册SW的原因都有什么并如何解决: 您的应用程序无法在HTTPS下运行。

    1.7K20

    渐进式Web应用(PWA)入门教程(上)

    而在微信这边,凭借庞大的用户基数和体量能否与PWA分庭抗礼乃至笑到最后目前还不得而知。 示例代码 大多数教程都讲述的是如何在Chrome上从零开始制作一个类似原生界面的应用。...然而在这篇教程中,我们并不打算做一个单页面应用程序,所以在这我们也不必了解诸如Material Design等知识。那么下面我们就直接看示例吧。 你可以从GitHub中获取本教程对应的示例代码。...打开基于Blink内核的浏览器(Opera,Vivaldi,Chrome),然后在地址栏中输入http://localhost:8888/(注意端口号是否正确),即可访问该示例。...使用USB线缆将你的移动设备连接到电脑上,然后从右上角三个点菜单中打开More tools - Remote devices标签 ?...点击左侧的Settings菜单,然后添加一条端口映射(Port Forwarding)的规则,将8888映射为localhost:8888,现在你可以直接在手机打开Chrome然后访问http://localhost

    92020

    在“小程序”PWA上开发WebRTC

    例如,当你的手机没有可用的网络连接时,本地Skype应用程序不显示过时落后的信息。如果你可以从设备的缓存中加载该应用程序,则加载时间会快得多。...例如,如果用户在安装PWA时访问https://cnn.com/article/all-is-well-with-the-world.html,它仍会加载https://cnn.com。...它具有高度的可配置性,并且可以消除很多自己从头开始创建时的疑难和令人头痛的问题。 为了让你的应用程序被Chrome分类为PWA,应用程序需要加载服务工作线程和某种脱机功能。...阻止通知也很容易,所以最好不要指望被应用程序准许的通知能够按预期设想一样有效。 技巧和窍门 相机的方向 在手机上使用WebRTC时,你需要特别注意相机的方向。...显示appear.in如何在安装时看起来像在台式计算机上运行。该图标来自链接的清单。在MacOS上,应用程序显示在Dock中,并可以使用Spotlight打开-就像其他任何应用程序一样。

    1.2K10

    PWA渐进式增强WEB应用

    当用户从主屏幕启动时,service work可以立即加载渐进式Web应用程序,完全不受网络环境的影响。...沉浸式体验—— 感觉就像设备上的原生应用程序,具有沉浸式的用户体验。 渐进式Web应用程序可以安装并在用户的主屏幕上,无需从应用程序商店下载安装。...缓存动态内容 App Shell 可保证 UI 的本地化以及从 API 动态加载内容,但同时不影响网络的可链接性和可检测性。 用户下次访问您的应用时,应用会自动显示最新版本。无需在使用前下载新版本。...也就是说,当你下载应用程序时,会自动被识别到系统为 Chrome OS,并开始安装 PWA 而不是 Android 版本。...外媒 Chrome Unboxed 发现,首个被替代的应用程序是 Twitter。Chrome OS 应用程序平台的技术主管 Dominick Ng 透露,下一个将会是 YouTube。

    1.3K20

    浅谈web前端的发展趋势

    而且有一个很大的突破,在无法访问网络时,Flipkart Lite 可以像原生应用一样照常执行,还会很骚气的变成黑白色;不但如此,曾经访问过的商品都会被缓存下来得以在离线时继续访问。...是PWA技术的必备要素 总结一下Manifest的三个步骤: 创建清单并将其链接到您的页面。 控制用户从主屏幕启动时看到的内容。 启动画面、主题颜色以及打开的网址等。 创建清单demo ?...short_name:为应用程序提供简短易读的名称。在没有足够空间显示全名时使用。 name:为应用程序提供一个人类可读的名称。...icons:各种环境中用作应用程序图标的图像对象数组 start_url:指定用户从设备启动应用程序时加载的URL。 ?...、如何响应推送消息,以及 web 应用、应用服务器与推送服务之间的鉴权与加密机制;由于 Push API 并不依赖 web 应用与浏览器 UI 存活,所以即使是在 web 应用与浏览器未被用户打开的时候

    1.8K10

    将你的博客升级为 PWA 渐进式Web离线应用

    基本要求 可靠(Reliable) 一方面是指 PWA 的安全性,PWA 只能运行在 HTTPS 上;另一方面是指在网络不稳定或者没网情况下,PWA 依然可以访问。...chrome > 桌面图标 > 启动样式 > 打开效果 manifest 内容 { "name": "梦魇小栈-专注于分享", "short_name": "梦魇小栈", "description...- 应用程序将看起来像一个独立的应用程序; minimal-ui - 应用程序将看起来像一个独立的应用程序,但会有浏览器地址栏; browser - 该应用程序在传统的浏览器标签或新窗口中打开. orientation...用户导航至您的站点时,浏览器会尝试在后台重新下载定义 Service Worker 的脚本文件。...当网站上打开的页面关闭时,旧 Service Worker 将会被终止,新 Service Worker 将会取得控制权。

    69910

    使用 Jenkins X、Kubernetes 和 Spring Boot 实现 CICD

    既然你已经知道如何使用 Jenkins X 和一个简单的 Spring Boot 应用程序,让我们来看看如何通过一个更实际的示例使其工作。...Jenkins X 将部署你的应用程序在一个 NGINX 服务器中,因此你也需要强制关闭 HTTPS,否则你将无法访问你的应用程序。修改 holdings-api/src/main/java/......第一个是你创建的 Jenkins X OIDC 应用程序的 ID。您可以通过在 Okta 上导航到您的应用程序并从 URL 复制值来获得它的值。...对于这个特定的应用程序,它们将 http://localhost:8080/login 用于登录,http://localhost:8080 用于注销。当您进入生产环境时,URL通常也是众所周知的。...当我第一次在 Jenkins X 中尝试这个功能时,我发现 jenkins-maven 代理没有安装 Chrome。

    7.7K70

    渐进式Web应用(PWA)入门教程(下)

    上篇文章我们对渐进式Web应用(PWA)做了一些基本的介绍。 渐进式Web应用(PWA)入门教程(上) 在这一节中,我们将介绍PWA的原理是什么,它是如何开始工作的。...假设您没有在您的网站中使用HTTPS,一个第三方的脚本就可以从其他的域名注入他自己的ServiceWorker,然后篡改所有的请求——这无疑是非常危险的。...一个离线的页面地址(offlineURL):当用户访问了之前没有访问过的地址时,该页面将会显示。 一个包含了所有必须文件的数组,包括保障页面正常功能的CSS和JavaScript。...您最好使用匿名模式来进行开发工作,这样可以排除缓存对开发的干扰。 最后,Chrome的Lighthouse扩展也可以为您的渐进式Web应用提供一些改进信息。...但是我们需要考虑以下几点: URL隐藏 当您的应用就是一个单URL的应用程序时(比如游戏),我建议您隐藏地址栏。除此之外的情况我并不建议您隐藏地址栏。

    80300

    备受乔布斯推崇的 PWA,为什么还没有杀死原生应用?

    如果你知道如何使用最现代的 web 标准来为今天的 iPhone 编写令人惊叹的应用程序,那么你就拥有了所需的一切。 所以,开发者们,我们为你们准备了一个非常甜美的故事。...尽管如此,因为 Web 开发者滥用 Web Push API(例如,新闻网站在你第一次访问网站时就请求获取通知权限),以至于人们越来越讨厌这些东西。...已安装的 PWA 可以被自动授予对 Push API 的访问权限。 只对已安装的 PWA 开发 Push API 访问权限,一般的网站不能请求访问该权限。 将权限请求绑定到多个浏览器 API。...在 Android 上,打开第三方 App 中的链接将打开已安装的 PWA。然而,在 iOS 上,它却打开了 Safari 浏览器。...当然,有些 App 确实需要访问原生特性。对于这些 App 来说,原生永远被希望是唯一的选择。

    1.5K10

    Google版小程序来了 渣浪微博没有广告了

    从它的定位和形态上你可以先把它看作 Google 版小程序。不用下载app,就可以直接在手机上运行。...换种说法就是接近 APP 形态的网页,以微博 PWA 版为例,你想「获得这款 APP」,首先需要在 Android 手机上打开 Chrome、UC、360 浏览器、百度浏览器等,输入对应的网址,打开网页后登录上账号就可以刷微博了...从微博 PWA 版多个操作步骤也可以看出,PWA 在实际应用中其实有点类似于「养成游戏」——也就是渐进式的形象表达。...如果你只是临时想浏览一下微博,打开浏览器直接访问就可以了,没必要再专门把它放在桌面「养着」。...当然,对于重度微博用户,微博 PWA 版就可以渐进式地变成 App,被添加到主屏幕后,你下次使用它就可以全屏运行,再下次打开网络不好也能加载之前的缓存。

    1.5K60

    渐进式Web应用程序的深入概述

    PWA则不同,渐进式Web应用程序旨在提供所有设备类似的使用体验,用户可以从手机切换到笔记本电脑,在类似的UI下,轻松完成相同的任务。...只需访问该网站,点击“添加到主屏幕”选项,该应用程序将立即显示在您的主屏幕上。 Linkable (可链接) 可链接的Web应用程序是可共享的,因此托管在专用域上的应用程序不适用。...您只需要一个URL即可。 创建渐进式Web应用程序 上述原则在实践中如何实现?...从主线程中删除此工作将应用程序逻辑与数据管理和网络相关的操作分开。 如您所见,这里的大多数渐进式应用都涉及服务器实现。但在实现之前,必须考虑应用程序的体系结构。...我们目前正在撰写一篇描述如何使用前端开发工具包WijmoJS构建PWA的文章。同时,这也是如何将现有应用程序迁移到渐进式标准的最佳示例。 关于葡萄城: 赋能开发者!

    1K20

    ant design vue pro admin菜单如果是外链,点击新标签页打开

    在Ant Design Vue Pro(Ant Design Pro for Vue)中,要实现菜单项点击后在新标签页打开外链,您通常需要在配置菜单时指定链接(​​href​​)并设置特定属性来控制打开方式...: '_blank', // 添加这个属性表示在新标签页打开 }, // ...其他菜单项 ]; // 在Ant Design Pro Vue中可能通过layout组件传递给ProLayout...:menuData="menuData" 在HTML标准中,​​target="_blank"​​​ 属性会让链接在新的浏览器窗口或标签页中打开。...当您将此属性应用到菜单项的​​href​​属性上时,点击该菜单就会在新标签页中打开指定的外部链接了。 在JSX中,您可以根据上述逻辑编写一个返回元素的函数或直接在组件render方法中处理。...) { CustomTag = 'a'; attrs = { href: item.path, target: target || '_blank', // 如果

    20100

    PWA - 令人惊奇的web用户体验新方法

    随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能.pwa 可以添加在用户的主屏幕上,不用从应用商店进行下载,他们通过网络应用程序 Manifest...渐进式:能确保每个用户都能打开网页,可以运行在不支持 PWA 技术的浏览器里。用户不能离线访问,不过其他功能都像原来一样没有影响。...被打开时,PWA 会展示一个有吸引力的闪屏。chrome 提供了可选选项,可以使 PWA 得到全屏体验。...安全:PWA使用https进行通信加密,防止了被第三方获取数据以及数据被篡改 推送:做到在不打开网页的前提下,推送新的消息 可安装:能够将 Web像 APP 一样添加到桌面,可以在主屏幕上创建图标 为什么是渐进式...桌面浏览器可以直接通过 http://localhost:8088 访问, 从 DevTools 的 Application 标签可以看到 Service Worker。

    2.6K10

    使用 Jenkins X、Kubernetes 和 Spring Boot 实现 CICD

    既然你已经知道如何使用 Jenkins X 和一个简单的 Spring Boot 应用程序,让我们来看看如何通过一个更实际的示例使其工作。...你还需要允许访问其运行健康检查。Jenkins X 将部署你的应用程序在一个 NGINX 服务器中,因此你也需要强制关闭 HTTPS,否则你将无法访问你的应用程序。...第一个是你创建的 Jenkins X OIDC 应用程序的 ID。您可以通过在 Okta 上导航到您的应用程序并从 URL 复制值来获得它的值。...对于这个特定的应用程序,它们将 http://localhost:8080/login 用于登录,http://localhost:8080 用于注销。当您进入生产环境时,URL通常也是众所周知的。...当我第一次在 Jenkins X 中尝试这个功能时,我发现 jenkins-maven 代理没有安装 Chrome。

    4.3K10

    如何在Ubuntu 14.04中使用NodeJS,SailsJS和DustJS构建SPA(单页应用程序)

    介绍 Node.js®是一个基于Chrome JavaScript运行时的平台,可轻松构建快速,可扩展的网络应用程序。...最重要的是,Sails为您的应用程序提供了适当的结构。 Dust是一个JavaScript模板引擎。它继承了ctemplate系列语言的外观,旨在在服务器和浏览器上异步运行。 SPA代表单页应用程序。...这些是适合单个网页的应用程序。网站打开后,页面不会重新加载。此类应用程序的目标是通过减少页面加载时间并提供轻松转换到不同页面来提供流畅的用户体验,就像桌面应用程序一样。...这太棒了,因为 在客户端和服务器上编写和维护相同模板的代码较少 搜索引擎可索引,因为任何页面都可以直接从服务器获取 准备 本教程假设您已经创建了一个Ubuntu 14.04 x64 腾讯云CVM。...我们构建了单页应用程序(SPA)网站,并了解了使用SailsJS框架。 外部链接 如果您想了解有关所用技术的更多信息,可以访问下面列出的链接。

    3K00

    PWA介绍及快速上手搭建一个PWA应用

    PWA介绍 一个新的前端技术,PWA( 全称:Progressive Web App )也就是说这是个渐进式的网页应用程序。...官网上给出 PWA 的宣传是 : Reliable ( 可靠的 )、Fast( 快速的 )、Engaging( 可参与的 ) Reliable :当用户从手机主屏幕启动时,不用考虑网络的状态是如何,都可以立刻加载出...Engaging : PWA 可以添加在用户的主屏幕上,不用从应用商店进行下载,他们通过网络应用程序 Manifest file 提供类似于 APP 的使用体验( 在 Android 上可以设置全屏显示哦...PWA示例 准备 我们先创建一个关于 PWA 的项目文件夹, 进入文件夹下我们准备一张 120x120的图片一张,作为我们的应用程序图标。...试着访问一下,我们这里用的coding Pages并且绑定了自己的域名 打开 chrom 的调试工具,打开 application ,点击 service workers 之后我们会发现 sw.js 脚本已经存到了

    2.3K130
    领券