2013-12-17 3 views
2

Я пишу firefox os application, и я нашел странную проблему. У меня есть две веб-активности (открывайте ссылку на вкладке «Проекты» и отправляйте электронную почту на вкладке «Пользователи»), что работает правильно в симуляторе Firefox OS 1.1, но не работает под имитатором appmanager + firefox OS 1.2. В дополнение, он не работал под моим телефоном Keon с предварительным выпуском FFOS 1.2.Странное поведение WebActivities в Firefox OS 1.2

У вас есть идея? Благодарю.

ответ

4

Может быть не самый оптимальный способ, но попробовать что-то вроде:

function sendEmail(toEmail, subject, body) { 
    var createEmail = new MozActivity({ 
    name : "new", 
    data : { 
     type : "mail", 
     url : "mailto:" + toEmail + "?&subject=" + subject + "&body=" + body + "", 
    } 
    }); 
} 
function processUsers() { 
    if (xhr.readyState == 4 && xhr.status == 200) { 
     var obj = jQuery.parseJSON(xhr.responseText); 
     for (var i = 0; i < obj['users'].length; i++) { 
     if (obj['users'][i].email != null) { 
      var myLi = document.createElement('li'); 
      myLi.innerHTML = "<p>" + obj['users'][i].name+ "</p>" + "<p class='sendEmail'>" + obj['users'][i].email; "</p>"; 
      var em =obj['users'][i].email; 
      var sb = ''; 
      var bd = ''; 
      myLi.onclick = (function(em, sb, bd) { 
       return function(){ sendEmail(em, sb, bd) } 
      })(em, sb, bd); 
      $('#resultsUsers').append(myLi); 
     } else { 
      $('#resultsUsers').append("<li><p>" + obj['users'][i].name + "</p></li>"); 
     } 
     } 
     usersAreLoaded = true; 
    } else { 
     console.log("did not get data " + xhr.status); 
    } 
} 
+0

изменил код для использования функции sendEmail –

2

Инлайн JavaScript код внутри OnClick и т.д., не будут работать в привилегированных приложениях см документацию о app CSP (content security policy):

Встроенные скрипты запрещены. Вы не можете использовать атрибуты скрипта, такие как onclick = "" или onload = "".

+0

Спасибо, что была проблема! – babazs

Смежные вопросы