Я работал над расширением Safari и врезался в стену.Я не могу понять, как отправить несколько строк данных из глобального ввода.Я некоторое время искал на этом сайте и на других сайтах и нашел только кусочки, но когда объединение не сработало.
Вот что мне нужно, чтобы выбраться из Globalsafari.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);