已解决:将经过身份验证的用户的电子邮件从网页发送到 chrome 分机
SOLVED: Sending authenticated user's email from webpage to chrome extension
我正在使用 Laravel 8 和 Vuejs 创建一个网站 (websiteA),并使用 JavaScript 创建一个抓取 chrome 扩展。该扩展正在抓取另一个网站 B 的内容,我想将抓取的数据从网站 B 存储到网站 A 数据库中经过身份验证的用户行。我一直在将经过身份验证的用户的电子邮件或 ID 从 websiteA 获取到 chrome 扩展程序,以便扩展程序知道将数据存储在何处。
到目前为止,我已经尝试通过定义扩展程序的 ID 并使用以下方法将消息从 websiteA 发送到扩展程序:
chrome.runtime.sendMessage
在扩展名上:chrome.runtime.onMessageExternal.addListener
但 vue 似乎无法识别 sendMessage 并显示:
"TypeError: Cannot read property 'sendMessage' of undefined"
为什么vue会显示这个错误?
还有其他办法吗?
我只需要将 id 或电子邮件从网站 A 传递到网站 B 上的 chrome 扩展。
[已解决]:我使用了网页 A 中的 window.postMessage 和扩展程序中的 window.addEventListener。
网页(Vuejs):
window.postMessage({ type: "FROM_PAGE", text: user_details }, "*");
content_script:
window.addEventListener("message", function(event) {
var user_details = event.data.text;
if (event.data.type && (event.data.type == "FROM_PAGE"))
{
{ ... }
chrome.runtime.sendMessage({'message': 'send_1' , 'data': user_details},function(response){ ... }
}
scraping_script:
chrome.runtime.sendMessage({'message':'send_2', 'data': order},function(response){ ... });
background_script:
var user_details;
chrome.extension.onMessage.addListener(function(request, sender, sendResponse){
if(request.message=="send_1")
{
user_details = request.data;
{ ... }
}
else if(request.message=='send_2')
{
send_data = user_details;
{ ...some post request... }
});
所以网页A发送user_details给content_script,content_script发送给后台脚本。抓取器从网页 B 抓取数据后,立即将数据发送到后台脚本。然后后台脚本执行 post 请求,将 user_details 和抓取的数据发送到网页 A.
我正在使用 Laravel 8 和 Vuejs 创建一个网站 (websiteA),并使用 JavaScript 创建一个抓取 chrome 扩展。该扩展正在抓取另一个网站 B 的内容,我想将抓取的数据从网站 B 存储到网站 A 数据库中经过身份验证的用户行。我一直在将经过身份验证的用户的电子邮件或 ID 从 websiteA 获取到 chrome 扩展程序,以便扩展程序知道将数据存储在何处。
到目前为止,我已经尝试通过定义扩展程序的 ID 并使用以下方法将消息从 websiteA 发送到扩展程序:
chrome.runtime.sendMessage
在扩展名上:chrome.runtime.onMessageExternal.addListener
但 vue 似乎无法识别 sendMessage 并显示:
"TypeError: Cannot read property 'sendMessage' of undefined"
为什么vue会显示这个错误?
还有其他办法吗?
我只需要将 id 或电子邮件从网站 A 传递到网站 B 上的 chrome 扩展。
[已解决]:我使用了网页 A 中的 window.postMessage 和扩展程序中的 window.addEventListener。
网页(Vuejs):
window.postMessage({ type: "FROM_PAGE", text: user_details }, "*");
content_script:
window.addEventListener("message", function(event) {
var user_details = event.data.text;
if (event.data.type && (event.data.type == "FROM_PAGE"))
{
{ ... }
chrome.runtime.sendMessage({'message': 'send_1' , 'data': user_details},function(response){ ... }
}
scraping_script:
chrome.runtime.sendMessage({'message':'send_2', 'data': order},function(response){ ... });
background_script:
var user_details;
chrome.extension.onMessage.addListener(function(request, sender, sendResponse){
if(request.message=="send_1")
{
user_details = request.data;
{ ... }
}
else if(request.message=='send_2')
{
send_data = user_details;
{ ...some post request... }
});
所以网页A发送user_details给content_script,content_script发送给后台脚本。抓取器从网页 B 抓取数据后,立即将数据发送到后台脚本。然后后台脚本执行 post 请求,将 user_details 和抓取的数据发送到网页 A.