因此,我有一个非常基本的Google Chrome扩展程序,其中有一个按钮。我正在从浏览器控制台的服务器中使用AJAX提取脚本。因此,当我单击扩展名时,有一个按钮,当我单击该按钮时,它将从服务器获取脚本,并且我可以使用console.log在控制台上加载该脚本
我想做的是,我想在当前页面上运行该脚本。
所以我的问题是-如何使该脚本在已加载到浏览器控制台中的页面上运行?
这是按钮的基本HTML代码-
<h4>Click here</h4>
<button class="button button5" id="bt1" >
<img src="a.png" alt="Click Me" style="height:42px;border:0;">
</button>
这是我从服务器获取脚本的基本JS代码-
var buttonClick = document.getElementById('bt1');
buttonClick.addEventListener('click', loadDoc('https://abcd/xyz/pqr/Script1', myFunction));
function loadDoc(url, cFunction) {
var xhttp;
xhttp=new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var data = this.responseText;
cFunction(this);
chrome.tabs.getSelected(null,function(tab) {
chrome.tabs.executeScript({code: `console.log(${JSON.stringify(data)})`});
chrome.tabs.getCurrent('data');
//console.log(taburl);
});
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
因此,基本上,我已经在“数据”变量中加载了该脚本
因此,现在,我必须从控制台复制该脚本并将其粘贴到控制台中,以便脚本得以执行,并且可以在当前浏览器页面上看到结果/输出。
因此,我不想复制并粘贴来运行它-当我单击扩展程序中的按钮时,脚本应在页面上自动运行/执行。
答案 0 :(得分:0)
我不确定您将如何使用chrome扩展名。但是,您可以使用bookmarklet运行JavaScript。它们的行为就像书签,但是它们不是重定向,而是运行代码。您可以使用this website
将代码转换为小书签