Я работаю над расширением Safari и ударил стену. Я не могу понять, как отправить несколько строк данных из глобального в инжекцию. Я искал какое-то время на этом сайте, а другие, и только нашел бит и куски, но когда они были объединены, не удалось.Обмен сообщениями Safari
Вот что мне нужно выйти из Global
safari.extension.secureSettings.username;
safari.extension.secureSettings.password;
Я попытался кладя их в глобальные переменные, но инъекционные не видит тех.
инъекционного код
document.getElementById('local_login').style.display='';
document.getElementById('local_login_link').style.display = 'none';
document.loginForm.username.value = /*Safari Secure Settings Username*/
document.loginForm.password.value = /*Safari Secure Settings Password*/
document.getElementById('localsubmit').click();
Я попробовал код из документации Apple, но это не будет работать любой код нагнетающего.
Редактировать Вот что у меня есть. Я просто не знаю, почему он не получает или не отправляет.
Global.html
function sendCred() {
myUsername = safari.extension.secureSettings.username;
myPassword = safari.extension.secureSettings.password;
var arrayNSA = [myUsername, myPassword];
safari.self.tab.dispatchMessage("nsaArray", arrayNSA);
}
safari.application.addEventListener("messageFromNSA", sendCred, false);
Inject.js
function showForm() {
document.getElementById('local_login').style.display='';
document.getElementById('local_login_link').style.display = 'none';
document.loginForm.username.value = myNSAusername;
document.loginForm.password.value = myNSApassword;
document.getElementById('localsubmit').click();
}
function recieveCred(msgEvent) {
var nsaMessageName = msgEvent.name;
var nsaMessageData = msgEvent.message;
if (nsaMessageName === "nsaArray") {
var myNSAusername = nsaMessageData[0];
var myNSApassword = nsaMessageData[1];
showForm();
}
}
function disbatchData() {
var nflksnfll = "Give me my data";
}
safari.self.addEventListener("nsaArray", recieveCred, false);
safari.self.tab.dispatchMessage("msgFromNSA", disbatchData);
Вы должны послать сообщение от глобальной страницы нагнетаемого сценария. Прочтите следующую страницу, а затем опубликуйте здесь комментарий, если вам все еще нужна помощь. http://developer.apple.com/library/safari/ipad/#documentation/Tools/Conceptual/SafariExtensionGuide/MessagesandProxies/MessagesandProxies.html – canisbos
Я все еще не могу это получить. Я могу добавить то, что я написал до сих пор. Я просто не уверен, что проблема с отправкой или получением, похоже, что они не работают. – WatsonN
Прошу прощения за поздний ответ. Я думал, что Stack Overflow отправит мне электронное письмо, когда вы прокомментируете, но это не так. Я добавил ответ ниже. – canisbos