我正在使用
jQTouch开发一个iPhone网络应用程序,它包含一个简单的mailto:链接到一个有效的电子邮件地址,它应该在点击时启动iPhone邮件应用程序,但不会.
如果我访问了包含完全相同链接的Mobile Safari中的“正常”网页,并点击它,我会得到预期的结果:邮件应用程序在“收件人”字段中弹出正确的电子邮件地址.
这里是链接HTML(地址已更改),以防万一我会坚果,并犯了一个愚蠢的错误,但它看起来完全正常:
<p><a href="mailto:info@mycompany.com">info@mycompany.com</a></p>
有人在使用jQTouch时遇到这个问题吗?或者任何人至少可以建议一种我可以调试的方法?在我点击非工作链接的时候,它会闪烁红色(活动链接状态),绝对没有其他的事情发生.
解决方法
我发现添加target =“_ blank”到链接工作 – 除了在一些桌面浏览器,它打开一个新的空白窗口,并打开电子邮件窗口.当然,jqtouch网站通常不会在桌面浏览器上查看,但我并不喜欢这种行为.
相反,这就是我所做的:
>将mailto:link放在onclick事件中并添加return false(所以实际链接到#不会触发)
>添加一个noHighlight类到链接
这是一个例子:
<a href="#" onclick="window.location='mailto:email@domain.com'; return false;" class="noHighlight">Email me</a>
之前:
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更改的作用是,如果链接(在ul内部的li内)具有noHighlight类,则不会更改背景或文本颜色.
似乎在桌面和移动浏览器上都能很好地工作.