javascript - 如何间接使用ContentScripts中网页定义的函数?

标签 javascript google-chrome google-chrome-extension xss code-injection

遵循 Chrome Extension Developer's Guide ,我知道,

content scripts have some limitations. They cannot:

  • Use chrome.* APIs (except for parts of chrome.extension)
  • Use variables or functions defined by their extension's pages
  • Use variables or functions defined by web pages or by other content scripts

但是我可以间接实现这一点吗?或者有什么例子吗?

例如:the-Injected-Page.html

==========

<html>
  <script>
    function blabla(){
    //do something
    }
  </script>
</html>

如何在我的内容脚本中使用该方法?

最佳答案

方 觉说,你必须注入(inject)你的脚本。

var actualCode = '(' + function() {
    blabla();
} + ')();';
var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);

但是有一点你应该知道,blabla() 仍然在网页的上下文中工作,而不是在你的内容脚本上,所以你可以调用它,但这就是你能做的。例如,您无法获取返回值并将其用于内容脚本。这是不可能的。

关于javascript - 如何间接使用ContentScripts中网页定义的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18027654/

相关文章:

javascript - 使用 Google Chrome 的 Jquery 隐藏/淡入问题

javascript - 将 CaptureVisibleTab 图像保存到临时文件以通过 Node.js 服务器发送

javascript - 使用 Chrome 扩展替换 jQuery 脚本

javascript - chrome.input.ime - 在语言之间切换

jquery - 未捕获的类型错误 : Object #<HTMLLIElement> has no method 'find' in Chrome

javascript - jQuery UI Datepicker - 在开始日期选择获取日期,然后在结束日期将类分配给具有开始日期的单元格

javascript - 选择选项值比较给出错误结果

javascript - ASP Web 窗体从 ViewState 中删除类客户端

javascript - 使用连续分割或正则表达式从文件名获取元素

javascript - Chrome 应用程序 : How to create a hovering circle icon like google hangout app?