12

我正在使用jQTouch开发一个 iPhone Web 应用程序,它包含一个mailto:指向有效电子邮件地址的简单链接,当点击该地址时应该会启动 iPhone 邮件应用程序——但它没有。

如果我在 Mobile Safari 中访问包含完全相同链接的“普通”网页,然后点击它,我会得到预期的结果:邮件应用程序会在“收件人”字段中弹出正确的电子邮件地址。

这是链接 HTML(地址已更改),以防我发疯并犯了一个愚蠢的错误,但它看起来非常好:

<p><a href="mailto:info@mycompany.com">info@mycompany.com</a></p>

有没有人在使用 jQTouch 时遇到过这个问题?或者任何人至少可以提出一种我可以调试它的方法吗?在我点击非工作链接的那一刻,它会闪烁红色(活动链接状态),并且绝对没有其他任何事情发生。

4

5 回答 5

7

我发现添加target="_blank"到链接是有效的——除了在某些桌面浏览器上,它会打开一个新的空白窗口并打开电子邮件窗口。当然,jqtouch 网站通常不会在桌面浏览器上查看,但我不喜欢这种行为。

相反,这就是我所做的:

  • mailto:链接放入onclick事件并添加返回false(因此实际链接#不会触发)
  • 在链接中添加了一个noHighlight

这是一个例子:

<a href="#" onclick="window.location='mailto:email@domain.com'; return false;" class="noHighlight">Email me</a>

然后我修改了主题文件中的 CSS。

前:

ul li a.active {
   background: #194fdb url(img/selection.png) 0 0 repeat-x;
   color: #fff;
}

后:

ul li a.active:not(.noHighlight) {
   background: #194fdb url(img/selection.png) 0 0 repeat-x;
   color: #fff;
}

我添加noHighlight该类的原因是,如果没有它,按钮会突出显示并“粘住”,这使得按钮看起来仍处于某种活动状态。为了解决这个问题,我添加了类并按照上面的描述修改了 CSS。

CSS 所做的更改是,如果链接(在 ali内部,在 a 内部ul)具有 class noHighlight,它不会改变背景或文本颜色。

现在在桌面和移动浏览器上似乎工作得很好。

于 2010-09-08T22:20:22.260 回答
6

我再次查看了 jQTouch 演示包中的示例代码,发现他们正在向target="_blank"他们的电子邮件链接添加一个属性。

我对我的链接做了这个,它开始工作(弹出邮件客户端窗口)。但是,标准网页中的链接也可以使用,但没有属性target="_blank"...

我很困惑,但如果您的移动页面使用 jQTouch,添加该属性似乎可以解决此问题。

于 2010-02-23T15:08:01.847 回答
2

它只适用于 target="_blank"。

对于那些(像我一样)觉得每次点击mailtotel链接时都会弹出“这将在新页面中打开”很烦人的人,你可以这样做:

编辑 jqtouch.js 并转到第 284 行:

if ($el.attr('target') == '_blank' || $el.attr('rel') == 'external')

现在将此行替换为:

if ($el.attr('target') == '_self' || $el.attr('target') == '_blank' || $el.attr('rel') == 'external')

在 HTML 上(例如):

<a href="tel:+351912345678">Call me</a>

变成

<a target="_self" href="tel:+351912345678">Call me</a>
于 2010-10-09T18:07:31.837 回答
1

很好的发现,我也在做同样的事情,直到最近才明白为什么。如果您查看 jqtouch.js rev 109 中的第 161 和 284 行,您会看到目标属性“_Blank”将阻止 jqtouch 劫持您的点击事件。它正在拦截事件,因为这是从页面移动到页面的主要机制。

于 2010-06-11T03:36:58.453 回答
1

这与 jQTouch 无关,但 mailto: 链接对我也不起作用,要修复它们,我所要做的就是在冒号后添加斜杠。

mailto://info@mycompany.com

在这里有了这样做的想法:http: //mobiledevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html。奇怪的是,没有斜线的电话链接对我来说很好用。

于 2012-06-19T22:34:38.797 回答