我想建立一个不属于chrome插件的网站,而只是使用插件公开给它的一些API。这是可能的,如果是这样,我该怎么办?我用Google搜索了这个问题,却找不到任何东西。
我尝试使用内容脚本但没有任何反应。有人可以解释这里的错误吗?
的manifest.json
{ "manifest_version": 2, "name": "Hello World Extension", "description": "This extension prints hello world.", "version": "1.0", "background": { "page": "background.html" }, "browser_action": { "default_icon": "img/icon.png", "default_popup": "popup.html" }, "content_scripts": [ { "matches": ["http://locahost:8888/*"], "js": ["EmotivAPI.js"] } ] }
EmotivAPI.js
var port = chrome.runtime.connect(); console.log("Hello?"); window.addEventListener("message", function (event) { // We only accept messages from ourselves if (event.source != window) return; if (event.data.type && (event.data.type == "FROM_PAGE")) { console.log("Content script received: " + event.data.text); port.postMessage(event.data.text); alert("recieved!"); } }, false);
网页中的js
window.sayHello = function () { window.postMessage({ type: "FROM_PAGE", text: "Hello from webpage!" }, "*"); } console.log('Emotiv extension loaded.'); }
我从控制台调用window.sayHello()
答案 0 :(得分:2)
Content Scripts可以为您提供帮助。
内容脚本将被注入页面:
"content_scripts": [
{
"matches": ["http://www.google.com/*"], // try with "http://localhost:*/*" or "http://localhost:*"
"css": ["mystyles.css"],
"js": ["content_script.js"]
}
]
如果您只想有时注入代码,请改用权限字段
/* in manifest.json */
"permissions": [
"tabs", "http://*/*"
],
在扩展程序html文件中,您可以通过以下方式执行脚本:
chrome.tabs.executeScript(null, {file: "content_script.js"});