Saya sedang menulis program MacOS kecil dengan WebView yang memuat situs web. Ini adalah salah satu situs yang memuat lebih banyak konten secara otomatis saat Anda menggulir ke bawah. Sebagai masa berlakunya, saya mencoba menulis kode yang akan terus-menerus bergulir ke bagian bawah halaman sehingga lebih banyak yang dimuat dan seterusnya.
Apa yang saya miliki sejauh ini adalah ini:
scrollToBottomTotalTimes = 10
self.myWebView.mainFrame.load(NSURLRequest(url: NSURL(string: urlString)! as URL) as URLRequest!)
func webView(_ sender: WebView!, didFinishLoadFor frame: WebFrame!) {
var scrollToBottomCurrentTimes = 0
while scrollToBottomCurrentTimes != scrollToBottomTotalTimes {
scrollToBottomCurrentTimes += 1
self.myWebView.scrollToEndOfDocument(self)
sleep(2) //give the page some time to load
}
}
Ini berfungsi dengan baik sekali: Halaman dimuat, digulir ke bawah, dan lebih banyak halaman dimuat.
Namun setelah itu, WebView tidak dapat di-scroll lagi, meskipun ada cukup waktu untuk memuat ulang halaman. Posisi di halaman tetap sama seperti sebelumnya.
Saya merasa .scrollToEndOfDocument(self)
sepertinya tidak mendeteksi fakta bahwa halaman web menjadi lebih panjang.
Apakah ada cara untuk 'memperbarui' .scrollToEndOfDocument(self)
sehingga ia mengetahui di mana letak bagian bawah halaman yang baru?
Terima kasih!