javascript - 如何在 html 页面中使用从本机应用程序接收到的数据?
问题描述
我使用本机消息传递扩展。我向本机应用程序发送一个字符串,因此在我的本机应用程序中对其进行加密并将加密的字符串发送到网页。
这是我的 content_script.js:
window.addEventListener("message", function(event) {
if (event.source == window &&
event.data &&
event.data.direction == "from-page-script") {
alert("send");
browser.runtime.sendMessage(event.data);
}
});
function Sign(challenge) {
var j_Data = {}
j_Data["command"] = "sign";
j_Data["challenge"] = challenge;
var j_Text = JSON.stringify(j_Data)
window.postMessage
({
direction: "from-page-script",
message: j_Text,
}, "*");
//response = document.getElementById("result").value;
}
/*
Send a message to the page script.
*/
function messagePageScript(request) {
var str_Text = request["text"];
var j_Text = JSON.parse(strText);
var str_Command = jText["command"];
if(str_Command == "signed")
{
var str_Signed_Data = jText["signeddata"];
}
}
browser.runtime.onMessage.addListener(function(request, sender, sendResponse) {
messagePageScript(request);
});
它工作正常。
当我收到一条消息时messagePageScript(request);
被调用。
如何str_Signed_Data
在我的 html 页面中使用 value of?
解决方案
从本机应用程序获取数据后,您必须使用 JavaScript 回调来返回数据。
function KeyA3_Sign(challenge, funcSign) {
...
kHandler = getResponse.bind(null, funcSign);
window.addEventListener("message", kHandler);
window.postMessage(jsonData, "*");
}
function getResponse(func, event) {
console.log("Call Get response");
func(event.data["text"]);
}
推荐阅读
- python - 将 excel 数据导入数据库 - 初学者
- node.js - 如何处理 Sematext 与监视重新启动的容器分离
- swift - 快速裁剪 UIImage 而不会损失质量
- c# - SQL delete 命令删除表中的所有条目
- objective-c - 如何检查可重入数据库队列?
- c++ - 检查 n2 是否是 n1 的倍数但完全没有错误后的错误结果
- java - 添加 facebook 登录集成后应用程序崩溃
- html - 响应式设计中的按钮位置
- boolean-algebra - 布尔代数简化练习
- javascript - 无法在 laravel 控制器中获取从 ajax 发送的数据