繁体   English   中英

如何在浏览器中不打开新窗口/标签页的情况下打开`tel:+48123`链接客户端

[英]How to open `tel:+48123` link client side without openning new window/tab in browser

如果我自己点击tel:+4842566链接,我需要提供相同的行为。 默认电话应用程序不应再呼叫该号码。

除了打开新标签之外,我还设法做到了。 我写:

function Call(){
    window.open("tel:+4842566",'_blank');     
}

和这个:

function Call(){
    window.open("tel:+4842566");     
}

和这个:

  function Call(){
        document.getElementById('mymailto').click();
    }


<a href="tel:+48123456" id="mymailto" style="display:none"></a>

结果是一样的。 计算机呼叫该号码,但已打开新选项卡。

问题:是否可以在没有新选项卡/窗口的情况下调用/打开此链接?

编辑:在我尝试运行这个客户端之前,我是在服务器端完成的,但没有意识到当我部署应用程序时,调用的不是客户端:

public ActionResult Call(int id, string number) {
  System.Diagnostics.Process proc = new System.Diagnostics.Process();
    string formattedNumber = "tel:+48" + formatPhoneNumber(number);
    System.Diagnostics.Debug.WriteLine("NUMBER " + formattedNumber);
    proc.StartInfo.FileName = formattedNumber;
    proc.Start();
    Person person = db.Persons.Find(id);
    return RedirectToAction("Edit", new Person { Id = id });
}

但后来我没有得到新标签,也许它会有所帮助。

编辑 2:我不只是寻找 href 链接,因为启动tel:链接只是同时发生的两件事之一:

<p>@Html.ActionLink("Call Cell Phone", "Call", new { id = Model.Id, number = Model.CellNumber }, new { @class = "btn btn-default", onclick = "Call();" })</p>

我转到控制器操作并调用Call() javascript 方法,而 JavaScript 方法是唯一可以简单打开任何链接的地方。

解决方案要容易得多:

document.location.href="tel:"+the_number;

好的。 这是一个小骗子,它适用于 Chrome,但不适用于我在 ASP .NET MVC Web 应用程序开发中使用的 IE。

   function Call(){
        document.getElementById('mymailto').click();
    }

并在 HTML 中

<a href="tel:+48123456" id="mymailto" style="display:none"></a>

window.open("tel:888", "_self");

第二个参数与“a”标签的“目标”属性相同。 这是目标的解释: https : //www.w3schools.com/tags/att_a_target.asp所以“_self”表示当前帧(大多数情况下=当前页面)

对此的解决方案是:

var call_app = window.open("tel:"+$(this).text(), "_blank");
call_app.close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM