manifest.json 中定义了一个内容脚本。内容脚本正在执行一项简单的任务。它将iframe添加到页面中并尝试在其中打开本地 HTML文件。
问题是:
ifrm.setAttribute("src", "http://www.xyz.com/"); //working correctly.
Run Code Online (Sandbox Code Playgroud)
但
ifrm.setAttribute("src", chrome.extension.getURL("view/abc.html")); //Not working
Run Code Online (Sandbox Code Playgroud)
iframe 未打开本地 HTML 文件。
任何建议...
html javascript iframe google-chrome-extension content-script
我想将数据从 popup.hmtl 的本地存储传递到内容脚本 content.js 我使用 popup.html 接收用户名和密码并将其存储在本地存储中。现在我想在执行之前将数据传输到内容脚本。
**popup.html**
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" async src="popup.js"></script>
</head>
<body>
<table>
<tr>
<td>
Username:
<td><input id="u1" type="text" name="uname">
</tr>
<tr>
<td>
Password:
<td><input id="u2" type="password" name="pass">
</tr>
<tr>
<td>
<td>
<input id="clickme" type="button" value="save" />
</tr>
</table>
<div id="result"></div>
<div id="result2"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
弹出窗口.js
document.getElementById('clickme').onclick=myfunction;
var sname = localStorage.getItem("username1");
var spass=localStorage.getItem("password1");
document.getElementById("result").innerHTML = localStorage.getItem("username1");
document.getElementById("result2").innerHTML=localStorage.getItem("password1");
function myfunction(){
// Check browser support
if (typeof(Storage) != "undefined") {
var uname="bhuwan";
var username=document.getElementById("u1").value;
var password=document.getElementById("u2").value; …Run Code Online (Sandbox Code Playgroud) javascript message-passing google-chrome-extension content-script
我正在尝试使用chrome扩展API,我遇到了一个我不明白的问题,
我有一个后台脚本"background.js"和一个内容脚本"content_script.js".
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript({code:"console.log('background script')"});
chrome.tabs.executeScript({file:"javascript/content_script.js"});
});
Run Code Online (Sandbox Code Playgroud)
内容脚本
chrome.tabs.executeScript({code:"console.log('content_script')"});
Run Code Online (Sandbox Code Playgroud)
后台脚本中的console.log工作得很好,但是在content_script中,我得到一个错误 - > "无法读取属性'executeScript'的undefined"
这意味着我无法从内容脚本访问chrome对象或chrome.tabs对象.为什么会这样?
这是我第一次创建 Google Chrome 扩展程序,当单击 YouTube 上的建议视频或任何与此相关的视频时,我找不到可靠地让内容脚本运行一次的方法。我试过将“all_frames”设置为true,但这会多次调用脚本。在浏览 YouTube 视频时,是否有一种简单的方法可以让每个视频只运行一次内容脚本?
PS:我使用 YouTube 作为我的主要示例,但其他网站上也存在此问题。是什么原因造成的,我该如何解决?
{//manifest.json
"name": "Test",
"version": "0.0.1",
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["run.js"],
}],
"permissions": ["activeTab"],
"manifest_version": 3
}
Run Code Online (Sandbox Code Playgroud)
——
//run.js
console.log('running');
Run Code Online (Sandbox Code Playgroud)