Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iPad桌面web链接上禁用电话号码检测?_Ipad_Html - Fatal编程技术网

在iPad桌面web链接上禁用电话号码检测?

在iPad桌面web链接上禁用电话号码检测?,ipad,html,Ipad,Html,我正在开发一个web应用程序,它将作为全屏应用程序从iPad上的桌面图标启动。建议使用此元标记: <meta name = "format-detection" content = "telephone=no"> 然而,这似乎不起作用。是否有其他HTML/CSS/JavaScript机制来控制这种行为 锚定标签的随机注入给我带来了很多CSS错误 解决方法 我发现其中一个可行的方法是注入特殊的空格字符,但是在输出中转换所有数据的想法并没有让我感到高兴。这样的角色会把自己的问题摆到

我正在开发一个web应用程序,它将作为全屏应用程序从iPad上的桌面图标启动。建议使用此元标记:

<meta name = "format-detection" content = "telephone=no">

然而,这似乎不起作用。是否有其他HTML/CSS/JavaScript机制来控制这种行为

锚定标签的随机注入给我带来了很多CSS错误

解决方法

我发现其中一个可行的方法是注入特殊的空格字符,但是在输出中转换所有数据的想法并没有让我感到高兴。这样的角色会把自己的问题摆到桌面上。AJAX和JavaScript转换将使这项工作更加复杂

复制

复制步骤:

  • 打开iPad Safari上的页面
  • 使用添加到主屏幕书签功能
  • 启动主屏幕图标
  • 示例页:

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name = "format-detection" content = "telephone=no">
    <title>Telephone detect</title>
    </head>
    <body>
    expected:
    <a href="tel:1555555">1555555</a>
    <br />
    bad: 1555555
    <br />
    bad: &#x31;&#x35;&#x35;&#x35;&#x35;&#x35;&#x35;
    <br />
    inconvenient: 1&#xFEFF;555555
    </body>
    </html>
    
    
    电话检测
    预期:
    
    坏:1555555
    坏:1555555;
    不便:1;555555
    注释


    似乎有关联,但缺乏细节,我不确定iPhone上的行为是否相同。这是一个web应用程序,没有本机组件。iPad版本3.2.2。

    好的,修复了它。。添加一个
    ,并将其样式设置为无文本装饰。。。我在asp.net中使用了asp:hyperlink控件,它在3.2上运行,所以不确定为什么它在4.2中停止,但使用标准的a链接是可行的。

    元标记在asp.net中对我有效。我的猜测是,它对OP不起作用,因为HTML格式不好。非IE浏览器、Mozilla浏览器存在格式错误的XML/Html问题。改变


    在电话链接加载后放置此项

    if (navigator.userAgent.match(/(iPhone|Android|BlackBerry)/)) {
    //this is the phone
    
    } else if (navigator.userAgent.match(/(iPod|iPad)/)) {
        $('a[href^=tel]').click(function(e){
           e.preventDefault();
        });
    } else {
     //this is the browser
    
        $('a[href^=tel]').click(function(e){
            e.preventDefault();
        });
    }
    

    meta标记将工作:

    <meta name="format-detection" content="telephone=no" />
    
    
    

    是Safari浏览器没有正确显示更新的页面。对页面进行一些其他文本更改并刷新,更改将显示。如果您已经以这种方式查看过,只需添加meta标记,页面上的数字仍将被解释为电话号码。

    我感谢您的努力,此解决方案可能适合某些人,但它会带来其他必须克服的问题(比如将内容转换为tabstop;可访问性问题——这些东西仍然需要在其他浏览器上使用)。标记是HTML 5,其中的
    /
    meta
    等没有任何影响。我不再在这一领域工作,也没有iPad可供测试,因此无法对照检查行为。为什么第二个if块是必需的?它不与else块做相同的事情吗?注意:我发布此问题和我无法评论该问题是否存在于较新的软件版本中,也无法验证任何建议的解决方案。