私は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
私はまだそれを得ることができません。これまでに書いたことを追加することができます。私は、送信または受信が問題であるかどうかは分かりません。どちらも動作していないかのように見えます。 – WatsonN
遅く返事をして申し訳ありません。私はあなたがコメントしたときにStack Overflowが私に電子メールを送ると思ったが、それはしなかった。私は以下の答えを追加しました。 – canisbos