我不知道這是一個簡單還是複雜的問題(或者之前有問題)。我試圖在瀏覽器中打開一個網頁,並說google.com,然後使用jquery抓取/修改這些元素。這裏是我下面的代碼:在打開的窗口上使用jquery函數
$scope.populateUrl = function() {
var openWindow = function() {
return $q(function (resolve, reject) {
resolve(window.open('https://www.google.com'))
})
}
openWindow().then(function (wnd) {
console.log(wnd.document)
var inputs = wnd.document.getElementsByTagName('input')
console.log(inputs)
})
}
我覺得這應該是一個非常簡單的問題,但是當我的控制檯日誌wnd.document我得到:
#document
<html>
<head></head>
<body></body>
</html>
而且輸入變量爲空。不應該wnd.document是谷歌的HTML?如果它有所作爲,我爲此項目使用Node。
您需要等待頁面加載。另外我不知道你是否能夠互動,因爲它們是不同的領域。不知道有沒有嘗試過的年齡。 – Vince
這就是我試圖通過將它包裝在$ q承諾中所做的事情。我想知道$ q如何知道另一個窗口何時完成加載,我真的不能想到一個答案。有沒有辦法讓$ q等待另一個窗口? – JN18
我知道我以前用'iframe'做過這個。不知道這是否有幫助,但只是一個頭。 – Sam