如何访问 <frameset><iframe> 中的所有表单? [复制]
Posted
技术标签:
【中文标题】如何访问 <frameset><iframe> 中的所有表单? [复制]【英文标题】:How access all forms inside a <frameset><iframe>? [duplicate] 【发布时间】:2018-12-28 03:05:48 【问题描述】:我想访问在<frameset><iframe>
中加载这些表单的网页的<form>
内的所有元素,
然后我在下面创建了这段代码,但不起作用。
什么时候不是以iframe
开头的页面可以正常工作。
如何解决?
manifest.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> 中的所有表单? [复制]的主要内容,如果未能解决你的问题,请参考以下文章