我一直在研究Safari擴展並遇到困難。我無法弄清楚如何從全局向注入發送多行數據。 我一直在這個網站和其他人尋找一段時間,只發現了點點滴滴,但當合並失敗。Safari擴展消息傳遞
繼承人什麼,我需要走出全球
的 safari.extension.secureSettings.username;
safari.extension.secureSettings.password;
我已經試過puting成全局變量,但注射沒有看到這些。
注入代碼
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();
我試圖從蘋果文檔的代碼,但它不會運行任何代碼注入的。
編輯 這是我到目前爲止。我只是不確定它爲什麼沒有收到或發送。
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 2012-01-06 02:03:53
我仍然無法得到它。我可以添加我迄今爲止所寫的內容。我只是不確定發送或接收是否是問題,看起來好像兩者都不起作用。 – WatsonN 2012-01-06 21:30:15
對於最近的回覆,我很抱歉。當你評論時,我認爲Stack Overflow會給我發電子郵件,但事實並非如此。我在下面添加了一個答案。 – canisbos 2012-01-10 18:14:46