2017-04-21 17 views
0

私はUIWebViewを使ってウェブサイトを表示しています。ユーザーがボタンを押すと、URL、タイトル、およびイメージを取るstructが作成されます。タイトルのJavaScriptをUIWebView-Swift 3.0で使用する

、私はイメージのために、それは難しいですが、let titleFromJS = mainWebView.stringByEvaluatingJavaScript(from: "document.querySelector(\".c-page-title\").textContent;")!

を使用しかし。イメージリンクは<source srcset>にラップされ、<picture>コンテナにラップされています。 c-pictureのクラスIDで検索したいのですが、ソースコンテナの内容を取得する方法がわかりません。

誰でもお手伝いできますか?どんな助けも非常に高く評価されます!事前にありがとう!

乾杯、 テオ source

答えて

0

は、そうでない場合は、アプリケーションがその要素が存在しないはずクラッシュしてしまいます、あなたの最初のJS声明からの力-アンラップあなたの結果を避けるようにしてください。 mainWebView.stringByEvaluatingJavaScriptからの結果がnilである場合に返すガードステートメントは、より良い選択肢かもしれません。画像のソースにアクセスするには

guard let titleFromJS = mainWebView.stringByEvaluatingJavaScript(from: "document.querySelector(\".c-page-title\").textContent;") else { 
    return 
} 

、あなたはpicture要素内img要素からそれを得ることができます:document.querySelector('.c-picture > img')]0].currentSrc

+0

ヒントはありがとうございますが、あなたの答えはうまくいかないようです。私は要素を調べるときにhtmlソースコードのイメージを添付しました。それは役に立ちますか? –

+0

それが今働くかどうか教えてください。 '#c-picture 'を' .c-picture'に変更しました。 – mattsven

関連する問題