当用户点击我创建的 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”警报。
有人可以帮忙吗?
最佳答案
特权 chrome。* 默认情况下,API 在现代 Chrome 的网页上不起作用。
应通过 "externally_connectable" 明确允许该 url在 list 中(请参阅该链接以获取代码示例)。
或使用tabs.executeScript至 inject DOM 访问代码而不是
tabs.sendRequest
。文档说 tabs.sendRequest自 Chrome 33 起已弃用。请改用
chrome.tabs.sendMessage
。
关于javascript - 通过 chrome 扩展在外部网页上填写表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32938799/