我正在尝试在用户点击我创建的Chrome扩展程序时,根据当前页面的值在外部网页上填写表单。
所以我要做的是打开页面并首先使用popup.js文件传递消息。
chrome.tabs.create({url: "http://localhost:49177/ProDATA/Add.aspx"},function(tab){
chrome.tabs.sendRequest(tab.id, {FirstName: FirstName}, function(response) {
console.log(response.farewell); })
});
然后在add.aspx页面上,该页面将位于用户所在页面的不同域中,我尝试这样做。
//add listener for chrome extension
var FirstName = '';
function LoadEventListener()
{
alert('test');
chrome.runtime.onMessage.addListener(function (request, sender, response) {
FirstName = request.FirstName;
alert(FirstName);
});
}
我从body onload事件加载“LoadEventListener”。并且警报“test”显示,因此它确实正在加载,但是我没有看到“FirstName”警报。
有人可以帮忙吗?
答案 0 :(得分:2)
特权Chrome。* API在现代Chrome网页上默认不起作用。
应该通过清单中的"externally_connectable"明确允许网址(请参阅该链接以获取代码示例)。
或者使用tabs.executeScript到inject DOM访问代码而不是tabs.sendRequest
。
该文档说自Chrome 33以来已弃用tabs.sendRequest。请改用chrome.tabs.sendMessage
。