Chrome 扩展程序输入文本问题
Chrome Extension Input Text Issue
有人可以帮助我们吗?我们创建了一个扩展程序来搜索文本框中的关键字,如果找到关键字,我们希望将文本写入另一个文本框。我们不确定如何在内容脚本中创建第二个发送响应(或者即使它是我们需要的发送响应),或者如何在后台脚本中访问它。下面列出的代码。
内容脚本:
// Listen for messages
chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
console.log(msg);
// If the received message has the expected format...
if (msg.text === 'report_back')
{
// Call the specified callback, passing
// the web-page's DOM content as argument
sendResponse(document.getElementById('.........').innerHTML);
}
});
背景脚本:
var urlRegex = /^https?:'/'/(?:[^./?#]+'.)?stackoverflow'.com/;
// A function to use as callback
function doStuffWithDom(domContent) {
var search = false;
if (domContent.match(/......./gi))
{
window.alert('......');
}
else
{
var r = confirm("Search indicates no tasks listed!");
if (r == true) {
//Type Text Code
} else {
x = "You pressed Cancel!"; //We are aware this does not do anything
}
}
}
// When the browser-action button is clicked...
chrome.browserAction.onClicked.addListener(function (tab) {
// ...check the URL of the active tab against our pattern and...
// ...if it matches, send a message specifying a callback too
chrome.tabs.sendMessage(tab.id, {text: 'report_back'}, doStuffWithDom);
});
清单:
{
"manifest_version": 2,
"name": "Test Extension",
"version": "0.0",
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": ["*://*.com/*"],
"js": ["content.js"]
}],
"browser_action": {
"default_title": "Test Extension"
},
"permissions": ["activeTab"]
}
为什么不将后台脚本中的逻辑放入内容脚本?由于您只是在搜索 dom 并弹出一个警报窗口。
内容脚本:
var doStuffWithDom = function (domContent) {
if (domContent.match(/......./gi)) {
window.alert('......');
}
else {
var r = confirm("Search indicates no tasks listed!");
if (r == true) {
//Type Text Code
} else {
x = "You pressed Cancel!";
}
}
};
chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
if (msg.text === 'report_back') {
doStuffWithDom(document.getElementById('.........').innerHTML);
}
});
背景脚本:
chrome.browserAction.onClicked.addListener(function (tab) {
chrome.tabs.sendMessage(tab.id, { text: 'report_back' });
});
似乎您正在从后台 HTML 页面搜索 Dom 内容?您确定内容在背景页面中吗?
您的内容脚本在"(实际上是沙盒)浏览的 HTML 页面中执行。我想你应该从内容脚本中搜索 DOM......
相关文章:
- 复选框与文本内联-JS问题
- 使用Handontable在同一列中用纯文本和html对问题进行排序
- 轴助手上的标签与文本几何和旋转问题
- 高图表的文本溢出问题
- 有CSS问题:can't将文本放置在选择框的右侧
- Safari手机文本输入问题
- 从 tinymce 文本区域检索数据时出现问题
- 文本框导致结构 JS 中的字体出现问题
- 使用jquery问题将文本附加到文本区域
- 显示比容器宽的文本,滚动时出现问题
- Greasemonkey查找文本问题
- 循环进度条在滚动时显示 - 百分比文本问题
- 未终止的字符串文本问题
- Chrome 扩展程序输入文本问题
- 谷歌语音识别搜索文本问题
- Jquery CSS验证里面输入没有消息红色文本问题
- js自定义出借文本问题
- jQuery ie输入文本问题
- 操作栏文本问题
- 延迟和显示文本问题