如何阻止Google Translate修改自定义URL Scheme链接?
解决Google翻译修改自定义URL Scheme链接的问题
方法1:使用data属性存储真实链接,通过JavaScript控制跳转
将自定义链接的真实地址存在data-href属性中,通过JavaScript初始化href并监听点击事件,确保跳转使用原始链接:
<a class="custom-scheme-link" data-href="myapp://something">打开我的应用</a>
// 页面加载完成后初始化链接 document.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('.custom-scheme-link').forEach(link => { // 初始化href为真实链接 link.href = link.dataset.href; // 监听点击事件,强制使用真实链接跳转 link.addEventListener('click', e => { e.preventDefault(); window.location.href = link.dataset.href; }); }); });
方法2:使用内联点击事件直接跳转
不需要设置href属性,通过onclick事件直接执行跳转逻辑,规避Google翻译对href的修改:
<a onclick="window.location.href='myapp://something'; return false;">打开我的应用</a>
方法3:动态生成链接元素
通过JavaScript动态创建链接并插入页面,Google翻译通常不会处理动态生成的DOM节点:
<!-- 页面中预留容器 --> <div id="app-link-container"></div>
document.addEventListener('DOMContentLoaded', () => { const link = document.createElement('a'); link.textContent = '打开我的应用'; link.href = 'myapp://something'; document.getElementById('app-link-container').appendChild(link); });
原理说明
Google翻译的链接修改逻辑针对的是页面静态HTML中的href属性,上述方法通过动态赋值或事件触发跳转的方式,绕过翻译脚本对静态href的批量替换,确保自定义URL Scheme链接能正常工作。
内容的提问来源于stack exchange,提问作者Thomas Tempelmann
相关产品推荐
相关产品推荐

