动态设置iframe中的href无法在Android上的Chrome中运行

时间:2013-03-20 22:15:22

标签: android google-chrome iframe mailto

我有一个页面(jobs.php),它具有所有移动功能,如通话,短信和电子邮件。我在主index.php页面中以iframe的身份访问此页面。 我做了一个函数,在拨打电话或短信或电子邮件之前,它会将条目记录到数据库中。

jobs.php代码

Javascript(所有变量都已定义并正常工作)

<img src=\""+imgpath+"email_logo.png\"onclick=\"setMailLog('"+installername+"',"+customerId+",'"+email+"')\" id=\"mimg_"+customerId+"\"/>


function setMailLog(installerName, customerId,email){
        console.log("Email Attempted:");
    $.ajax({
      url: 'functions.php',
      type: 'POST',
      dataType:'text',
      data: 'elogins='+installerName+'&elogcid='+customerId,
      success: function(result){
        console.log(result);
        $("#mimg_"+customerId).wrap('<a id="mhrefid_'+customerId+'" target="_blank"></a>');
        $('#mhrefid_'+customerId).attr('href','mailto:'+email);
        window.location.href=$("#mhrefid_"+customerId).attr('href');
      } 

   }); 

    }

这在所有桌面浏览器上都运行良好。它在Android上的默认浏览器上工作正常但在Android上的Chrome中断,这很重要,因为它们是移动功能,应该可以在每个浏览器的移动设备上运行。

当我点击Android上的Chrome中的邮件图标时,它会显示

The web page at mailto:email might be temporarily down or it may have removed permanently to a new address

Error 302(net::ERR_UNKNOWN_URL_SCHEME): Unknown error

错误页面仅显示特定的iframe,而不是整个index.php文件。

调用和短信功能相同,只是错误更改为tel:5225sms:5114

这一切都在iframe中,可能是造成问题的原因吗?

1 个答案:

答案 0 :(得分:1)

对我来说看起来像个错误。我创建了一张跟踪它的票证https://code.google.com/p/chromium/issues/detail?id=223146

要解决此问题,请替换

window.location.href=$("#mhrefid_"+customerId).attr('href');

window.top.location.href=$("#mhrefid_"+customerId).attr('href');

这会更改顶级网页的位置,而不是iframe,这在Chrome中运行良好。