标签: content-script

Chrome 扩展:内容脚本无法将本地 HTML 文件加载到 iframe

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

0
推荐指数
1
解决办法
3368
查看次数

如何将 localstorage 从 popup.js 传递到 content.js

我想将数据从 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

0
推荐指数
1
解决办法
2847
查看次数

无法从后台脚本以外的脚本访问chrome对象或chrome.tabs对象

我正在尝试使用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对象.为什么会这样?

javascript google-chrome-extension content-script

0
推荐指数
1
解决办法
3873
查看次数

内容脚本仅在重新加载/刷新时加载

这是我第一次创建 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)

javascript google-chrome-extension content-script

0
推荐指数
1
解决办法
2872
查看次数