我正在爲一個複雜的頁面而努力以選擇少量元素。主要的是我需要讀取/改變輸入值的形式。 到目前爲止我獲得成功,形成使用此代碼:contentDocument的內容()會返回空值
var mainFrame = $(frames[1].document.body).contents().find("#mainFrame1");
好了,所以我嘗試:
$(mainFrame.contents());
,並返回空[] ...如果我嘗試
$(mainFrame[0].contents());
我得到的錯誤:mainFrame [0] .contents不是一個函數...
但使用純JS:
mainFrame[0].contentDocument.getElementById("dataForm");
作品! 我想把它保存到jQuery中,我需要在這個相同的框架內找到更多的元素,所以我需要mainFrame變量可用於搜索所有這些元素...
試圖幫助下面的答案找到一個完整的解決方案,我張貼console.debug大型機變量:
console.debug(mainFrame);
[frame#mainFrame, prevObject: b.fn.b.init[7], context: frameset#outerFrameSet, selector: "#mainFrame"]
0: frame#mainFrame
accessKey: ""
attributes: NamedNodeMap
baseURI: "https://edited"
childElementCount: 0
childNodes: NodeList[0]
children: HTMLCollection[0]
classList: DOMTokenList[0]
className: ""
clientHeight: 369
clientLeft: 0
clientTop: 0
clientWidth: 1150
contentDocument: document
->body
->children (here I can see the form I'm trying to select)
contentEditable: "inherit"
contentWindow: Window
dataset: DOMStringMap
dir: ""
draggable: false
firstChild: null
firstElementChild: null
frameBorder: "0"
hidden: false
id: "mainFrame"
innerHTML: ""
innerText: ""
isContentEditable: false
...
outerHTML: "<body ..."
continues...
您不能在DOM節點上運行'.contents();'。 – KingCodeFish