如何从 chrome 扩展访问 iframe?

消泡

如何让我的扩展程序像 adblock 一样在所有框架上工作?

我尝试添加"all_frames" : true到我的清单文件中,但没有用。

我尝试使用此代码获取具有特定 ID 的文本:

var theId = "starts with something";
var myArray = [];
$('[id^="theId"]').each(function(i, obj) {
    myArray.push($(this).text());
}); 

$.unique(myArray);

console.log(myArray);

但它说我的数组是空的。当我检查页面上的元素时,我看到一个“顶层”层和一个“目标内容”层。该代码仅在我在“目标内容”层的控制台中执行时才有效。我可以在内容脚本中使用此代码,还是需要以某种方式使用 background.js?

零零

接上 SO44122853

我看到您发现内容已加载到 iframe 中。所以我在这里有一个工作演示PLUNKER,代码片段在这里,以防万一plunker出现故障。

详情评论在 PLUNKER

演示

由于需要运行 2 个单独的页面而无法正常工作

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1, user-scalable=no">
  <style></style>
</head>

<body>
  <!--iframe is same as the one on the site, with the exception
  of the src-->
  
  <iframe id="ptifrmtgtframe" name="TargetContent" title="Main Content" frameborder="0" scrolling="auto" width='90%' src="tables.html"></iframe>
  
 <!--The data is displayed as a one string-->
  <output id='display'></output>
  
  <script>
  
  // Reference the iframe
    var iFID = document.getElementById("ptifrmtgtframe");
  // Register the load event on iframe
    iFID.onload = function(e) {
      // Callback is extractText function
      return extractText('#ptifrmtgtframe', '#display', '.PSLONGEDITBOX');
    }

    /* Pass iframe and display as a single selector
    || Pass targets as a multiple selector
    */
    function extractText(iframe, display, targets) {
      var iArray = [];
      var iFrame = document.querySelector(iframe);
      var iView = document.querySelector(display);
      var iNode = "";
      
      /* .contentWindow is property that refers to content
      || that is in an iframe. This is the heart of the
      || demo.
      */
      var iContent = iFrame.contentDocument || iFrame.contentWindow.document;
      var iTarget = iContent.querySelectorAll(targets);
      
      /* .map() will call a function on each element
      || and return a new array as well.
      */
      Array.from(iTarget).map(function(node, idx) {

        iNode = node.textContent;
        iView.textContent += iNode;
        iArray.push(iNode);
        return iArray;
      });
      console.log(iArray);
    }
  </script>
</body>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Chrome扩展程序中的popup.html中访问iframe

来自分类Dev

从Chrome扩展程序访问iframe中的DOM元素

来自分类Dev

如何使Chrome扩展程序在添加的每个新iframe上运行?

来自分类Dev

如何从Chrome扩展程序访问主机

来自分类Dev

如何从Chrome扩展程序访问主机

来自分类Dev

访问DOM元素数据文档-> iframe-> iframe-> method chrome扩展名

来自分类Dev

Chrome扩展程序注入iframe

来自分类Dev

Chrome扩展程序弄乱了iframe

来自分类Dev

Chrome扩展程序-注入的iframe无法访问Chrome浏览器操作或chrome.tabs或AngularJS

来自分类Dev

Chrome扩展程序-注入的iframe无法访问Chrome浏览器操作或chrome.tabs或AngularJS

来自分类Dev

如何从Chrome扩展名访问angularjs根作用域

来自分类Dev

如何从Chrome扩展程序后台脚本访问页面变量

来自分类Dev

如何从Chrome扩展程序的后台js访问页面元素

来自分类Dev

Chrome扩展程序如何访问活动标签的HTTP标头?

来自分类Dev

如何使用Chrome扩展程序/插件访问HTML元素?

来自分类Dev

通过Chrome扩展程序绕过iFrame检测

来自分类Dev

Chrome扩展程序将jQuery注入iframe

来自分类Dev

Chrome扩展程序-iFrame自动高度

来自分类Dev

chrome扩展程序:扩展程序可以与外部iframe通信吗?

来自分类Dev

Chrome扩展程序访问权限

来自分类Dev

限制对Chrome扩展程序的访问

来自分类Dev

从Chrome扩展程序访问API

来自分类Dev

Chrome扩展程序访问权限

来自分类Dev

使用Chrome扩展程序将JavaScript注入iframe

来自分类Dev

从已加载的iframe将消息发送回Chrome扩展程序

来自分类Dev

使用Chrome扩展程序将JavaScript注入iframe

来自分类Dev

从已加载的iframe将消息发送回Chrome扩展程序

来自分类Dev

无法通过Chrome扩展程序与iFrame进行交互

来自分类Dev

Chrome扩展程序:在用户点击iframe时设置操作

Related 相关文章

  1. 1

    如何在Chrome扩展程序中的popup.html中访问iframe

  2. 2

    从Chrome扩展程序访问iframe中的DOM元素

  3. 3

    如何使Chrome扩展程序在添加的每个新iframe上运行?

  4. 4

    如何从Chrome扩展程序访问主机

  5. 5

    如何从Chrome扩展程序访问主机

  6. 6

    访问DOM元素数据文档-> iframe-> iframe-> method chrome扩展名

  7. 7

    Chrome扩展程序注入iframe

  8. 8

    Chrome扩展程序弄乱了iframe

  9. 9

    Chrome扩展程序-注入的iframe无法访问Chrome浏览器操作或chrome.tabs或AngularJS

  10. 10

    Chrome扩展程序-注入的iframe无法访问Chrome浏览器操作或chrome.tabs或AngularJS

  11. 11

    如何从Chrome扩展名访问angularjs根作用域

  12. 12

    如何从Chrome扩展程序后台脚本访问页面变量

  13. 13

    如何从Chrome扩展程序的后台js访问页面元素

  14. 14

    Chrome扩展程序如何访问活动标签的HTTP标头?

  15. 15

    如何使用Chrome扩展程序/插件访问HTML元素?

  16. 16

    通过Chrome扩展程序绕过iFrame检测

  17. 17

    Chrome扩展程序将jQuery注入iframe

  18. 18

    Chrome扩展程序-iFrame自动高度

  19. 19

    chrome扩展程序:扩展程序可以与外部iframe通信吗?

  20. 20

    Chrome扩展程序访问权限

  21. 21

    限制对Chrome扩展程序的访问

  22. 22

    从Chrome扩展程序访问API

  23. 23

    Chrome扩展程序访问权限

  24. 24

    使用Chrome扩展程序将JavaScript注入iframe

  25. 25

    从已加载的iframe将消息发送回Chrome扩展程序

  26. 26

    使用Chrome扩展程序将JavaScript注入iframe

  27. 27

    从已加载的iframe将消息发送回Chrome扩展程序

  28. 28

    无法通过Chrome扩展程序与iFrame进行交互

  29. 29

    Chrome扩展程序:在用户点击iframe时设置操作

热门标签

归档