我想执行从服务器获取的代码.我可以在控制台中获取代码.希望该代码在主浏览器页面上执行



所以,我有一个非常基本的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();
}

因此,基本上,我将该脚本加载在"数据"变量

因此,现在,我必须从控制台复制该脚本并将其粘贴到我的控制台中,以使脚本执行,并且在当前的浏览器页面上看到了结果/输出。

因此,我想要的不是复制和粘贴以运行它 - 当我单击扩展程序中的按钮时,脚本应在页面上自动运行/执行。

我不确定如何使用Chrome扩展名进行此操作。但是,您可以使用Bookmarklet运行JavaScript。它们像书签一样起作用,但没有重定向,而是运行代码。您可以使用此网站将代码转换为书签

最新更新