[英]converting a [object HTMLCollection] into string in javascript
[英]Retrieve [String] from [object HTMLCollection]
我一直在努力解決這個問題。 我有一個有效的javascript命令,我從我的wkwebview發送:
document.getElementById('qlist-wrapper').getElementsByClassName('question-summary narrow').toString();
當我從Safari控制台輸入時,我會回來
"[object HTMLCollection]"
但是當我嘗試使用返回的對象時,我感到很茫然。 我得到“EXC_BAD_ACCESS”(代碼= 1,加上一個地址)。 有4個有效負載對象與“html:Any”對象關聯; 他們都是0。 這是上下文中的代碼:
webView.evaluateJavaScript("document.getElementById('qlist-
wrapper').getElementsByClassName('question-summary narrow').toString();", completionHandler: { (html: Any, error: Error?) in
print("\(html)")
if let error = error {
print("\(error.localizedDescription)")
}
})
}
最終我的目標是將html集合轉換為Swift字符串數組。 我怎么做? 我非常歡迎JSON解決方案(可能使用Alamofire),但我簡化了我的方法,首先讓一些工作正常。 (我過去和Alamofire一起工作過,但沒有那么多JSON)。 如果我在打印之前嘗試查看變量,我得到:
po html
error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff8).
The process has been returned to the state before expression evaluation.
我在這個問題上確實有兩個問題:
1)如何將HtmlCollection轉換為數組? 和
2)當我嘗試使用WKWebView的javascript調用結果時,為什么會出現異常。
我解決了這個難題的第一部分,所以我將在此處記錄並關閉它。 一旦我對JavaScriptCore有了更好的處理(我希望最終的解決方案在於),我將發布一個新問題並從這里交叉引用該問題/解決方案。
如果我在Safari中的Web Inspector控制台中輸入以下內容,我希望從HtmlCollection轉換為Array:
Array.prototype.slice.call(document.getElementById('qlist-wrapper').getElementsByClassName('question-summary narrow'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.