如何访问 <frameset><iframe> 中的所有表单? [复制]

Posted

技术标签:

【中文标题】如何访问 <frameset><iframe> 中的所有表单? [复制]【英文标题】:How access all forms inside a <frameset><iframe>? [duplicate] 【发布时间】:2018-12-28 03:05:48 【问题描述】:

我想访问在&lt;frameset&gt;&lt;iframe&gt; 中加载这些表单的网页的&lt;form&gt; 内的所有元素,

然后我在下面创建了这段代码,但不起作用。

什么时候不是以iframe 开头的页面可以正常工作。

如何解决?

ma​​nifest.json


  "name": "Chrome webrequest test",
  "version": "0.1",
  "description": "A test for webrequest",
  "manifest_version": 2,
  "permissions": [
    "tabs", "background", "activeTab", "<all_urls>", "webNavigation", "webRequest", "webRequestBlocking", "http://*/*", "https://*/*", "*://*/*"
  ],
  "background": 
    "scripts": ["background.js"],
    "persistent": true
  ,
  "browser_action": 
        "default_icon": "img/flash128.png",
        "default_title": "Chrome webrequest"
  ,
    "icons" : 
      "48" : "img/flash48.png"  
    

background.js

chrome.webRequest.onCompleted.addListener(
     function OnWebRequestCompleted() 
      chrome.tabs.executeScript(null, 
       file: "Inject.js"
      , function() );
     , 
      urls: ["<all_urls>"],
      types: ["main_frame"]
     , ["responseHeaders"]);

Inject.js

var url = document.URL;

if (url.indexOf("site.com") != -1) 

 var form = document.getElementsByTagName("form");
 var btnclass = document.getElementsByClassName("btnClassName");
 var inputField = document.getElementsByTagName('input');

 for (var x = 0; x < form.length; x++) 

  //  document.body.addEventListener('DOMSubtreeModified', function() 

  for (var i = 0; i < btnclass.length; i++) 

   btnclass[i].addEventListener('click', function(e) 

    for (var i = 0; i < inputField.length; i++) 

     alert(inputField[i].value);

    

   , false);
  

  // , false);
 

【问题讨论】:

【参考方案1】:

您的 iframe 是不同的文档。您当前使用 document.getElementsBy* 的位置需要更改为类似

var iframe = document.getElementById('frameID');
var innerDoc = iframe.contentDocument
innerDoc.getElementsBy*...

【讨论】:

以上是关于如何访问 <frameset><iframe> 中的所有表单? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

iframe与frameset有啥区别

frameset的使用小结

jquery ui 如何在frameset下遮罩全部页面。

Frame、Iframe、Frameset 的区别

如何自动刷新指定的网页

asp.net中如何退出整个框架(frameset ),回到登录界面?